Thread Regex-Frage (11 answers)
Opened by Gast at 2009-12-20 19:10

MatthiasW
 2009-12-22 15:35
#129612 #129612
User since
2008-01-27
367 Artikel
BenutzerIn
[default_avatar]
Wenn man die fehlende schließende Klammer ergänzt, matcht es trotzdem auch wenn beide Teilausdrücke fehlschlagen:
Code: (dl )
1
2
3
4
~$ perl
$rx = qr/( (?: \w+ (?:\s+\w+ )? )?+ ; (?: \w+ (?: \s+\w+ )? )?+ )/x;
print "gaga\n" if ';' =~ $rx;
gaga

Das + hinter dem Fragezeichen bedeutet doch nur, dass nicht versucht wird, den optionalen Ausdruck, wenn er denn passte, wieder freizugeben, damit der gesamte Ausdruck matcht, oder?
Also ein /\w?b/ würde auf 'b' matchen, ein /\w?+b/ jedoch nicht.

MfG
perl -E'*==*",s;;%ENV=~m,..$,,$&+42;e,$==f;$"++for+ab..an;@"=qw,u t,,print+chr;sub f{split}say"@{=} me"'

View full thread Regex-Frage