Thread Reguläre Ausdrücke suchen
(34 answers)
Opened by Bionerd at 2012-04-18 12:19
Hi! Habe Perl noch nicht lange, vorher immer mit Java gearbeitet, aber ich glaube, mein Problem ist mit Perl schneller zu lösen.
Ich möchte ein File einlesen und in diesem nach regulären Ausdrücken suchen. Dabei ist zu beachten, dass immer nur Paare gefunden werden sollen, sprich ich schaue welches Muster kommt mit welchem anderen vor... Wenn die Muster gefunden werden, wüsste ich gern, in welcher Zeile sie gefunden werden, sprich ich bräuchte pro Muster einen Zähler. Der zweite Teil des Programms soll dann das Auftreten der Paare zählen und in einem Array oder gleich in einer .csv speichern. Wer kann mir helfen? Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 @motives = ("GAAG","PO","OHO"); # kann man in so ne liste auch ausdrücke wie G[A-Z]{2}G integrieren? open (HANDLE, "< nTM.txt"); $sequence = ''; $sequence2 = ''; while(<HANDLE>) { $line = $_; chomp ($line); $line2 = $_; chomp ($line2); if ($line ne '' && $line2 ne '') { $sequence = $sequence . $line; $sequence2 = $sequence2 . $line2; # weiß nich,ob das alles benötigt wird... foreach $motive(@motives) { foreach $motive2(@motives) { if ($sequence =~ $motive && $sequence2 =~ $motive2 && $motive ne $motive2) # am besten wäre es,wenn auch Paare gleicher Muster gefunden werden, wenn sie sich auf unterschiedlihen Positionen befinden { print "$motive matcht $motive2 \n"; #hier fehlt die Angabe der Zeilen, in der die Muster gefunden werden print "\n"; #leider wird alles mehrfach gezählt... } }} } } Last edited: 2012-04-18 12:21:33 +0200 (CEST) |