ich erwartet hatte diese "[b]"
zu drucken, aber er druckt "[]"
:Warum scheint es, als ob der * in Perl regex nicht gierig ist?
$x = "abc";
$x =~ /(b*)/;
print "[$1]";
Wenn der Stern mit einem Plus ersetzt wird, wirkt es wie ich erwarte. Sind nicht Plus und Stern gierig?
HINZUGEFÜGT: Danke an alle, die (in Sekunden, so schien es!) Darauf hingewiesen haben, dass "b *" mit der leeren Zeichenfolge übereinstimmt, deren erstes Auftreten vor dem Beginn der Zeichenfolge liegt. So ist Gier nicht das Problem überhaupt. Es stimmt mit der leeren Zeichenfolge überein, bevor es überhaupt zum ersten 'b' kommt.
Ich verstehe. So ist Gier nicht das Problem überhaupt. Es hat nie die Möglichkeit, gierig mit der Zeichenfolge von b übereinzustimmen, da sie mit der leeren Zeichenfolge am Anfang der Zeichenfolge übereinstimmt, bevor sie überhaupt mit den bs übereinstimmt. – dreeves
Sie haben Recht, Sir. – chaos