Thread Reguläre Ausdrücke suchen
(34 answers)
Opened by Bionerd at 2012-04-18 12:19
qr ist dein Werkzeug. Es erzeugt reguläre Ausdrücke.
Und mit einem Hash kannst du euch in einem Array die Zeilennummern speichern. Code zum nachvollziehen: 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 26 27 28 29 30 31 32 33 34 35 36 #!/usr/bin/perl use strict; use warnings; my @motives = ( qr(GACG), qr(G[A-Z]{2}G), qr(GAGG?A), qr(Kikeriki)i ); my %gefunden; my $zeilennr; while (my $line = <DATA>) { $zeilennr++; for my $re (@motives) { push @{$gefunden{$re}},$zeilennr if $line =~ $re; } } while (my ($k,$v) = each %gefunden) { print "$k: ", join(",",@$v),"\n"; } #ergibt: #(?-xism:GAGG?A): 1 #(?-xism:GACG): 2 #(?-xism:G[A-Z]{2}G): 1,2 #(?i-xsm:Kikeriki): 4 __DATA__ GAGGA GACG Kuh KikEriKi Last edited: 2012-04-18 12:45:19 +0200 (CEST) |