Thread match-Anweisung mit strings als Suche: match-Operator (9 answers)
Opened by Duff at 2006-11-13 12:08

Duff
 2006-11-13 12:08
#71672 #71672
User since
2006-10-06
283 Artikel
BenutzerIn

user image
Hallo,

ich habe eine Frage zum match-Operator. Ich möchte den zu suchenden reg. Ausdruck in einer Variablen speichern und dann die Variable im match-Ausdruck verweden.

Ich habe z.B. folgende Subroutine:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
sub ausgabe {
my ($arrayRef)=@_;
foreach my $array ( @{$arrayRef} ) {
my @result=();
while ($array->[1] =~ /(<[^>]*?STRING[^>]*?>)(\d{10,15})<\/[^>]*?STRING[^>]*?>/igm) {
push @result, $1. " --> " .$2. "\t";
}
printf "%-90s : %-s\n", $array->[0], join(" ",@result);
}
}


die gerne in etwa so schreiben möchte (was aber nicht funktioniert. Der SUCH-String wird aber korrekt in der print-Anweisung zurück gegeben).
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
sub ausgabe {
my ($arrayRef)=@_;
my $suchstring = "/(<[^>]*?STRING[^>]*?>)(\\d{10,15})<\/[^>]*?STRING[^>]*?>/igm";
print "-- $suchstring --\n";
foreach my $array ( @{$arrayRef} ) {
my @result=();
while ($array->[1] =~ $suchstring) {
push @result, $1. " --> " .$2. "\t";
}
printf "%-90s : %-s\n", $array->[0], join(" ",@result);
}
}
D'OH
Daniel

View full thread match-Anweisung mit strings als Suche: match-Operator