Hallo liebe Leute,
ich such nach einem Ansatz für folgendes Problemchen:
In einer RegEx soll verschiedene Parameter ausgewertet werden. Diese können ja durch Klammerung iin den Perl-Internen $1..$xx landen. Soweit so gut. Problem ist, die Anzahl der gematchten Brackets kann variabel sein, sprich, ich weiß nicht, ob $5 der letzte Parameter ist oder $8.
Wie kann ich dies programmatisch rausfinden, oder gibt es etwa noch ein Perl-Internes Array, das ich nicht kenne??
Beispiel:
/\( \s*(\w+)\s* (?:,\s*(\w+)\s*)* \)/
Die Parameter so oder ähnlich werden eingegeben : ( a, b, c )
oder ( v, w, x, y )
Ergebnisse wären dann in $1,$2,$3 oder $1,$2,$3,$4.
Liebe Grüße,
Chris
User since
2006-01-27
3891
Artikel
HausmeisterIn
Oder mit Array-Zuweisung arbeiten... damit erhält man auch die Anzahl der Klammer-Ergebnisse und man kann auch darüber zugreifen.
if ( my @matches = $text =~ /\( \s*(\w+)\s* (?:,\s*(\w+)\s*)* \)/ ) {
print "Funde: " . @matches;
}
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
Ich sag Danke,
Grüße,
Chris.