LanX!: Regulärer Ausdruck /\G..../

Beitrag lesen

Hi

while(/\G(.{40}\S{0,10}\s?)/gc)

Beim Versuch die Funktion zu erkennen, bin ich gleich über das \G gestolpert, was ich weder in Selhtml noch über Google finden konnte.

perldoc perlretut hat ein paar gute Beispiele, schau sie dir mal an.

(perldoc.org hat probleme)

Es geht im wesentlichen darum dass bei wiederholten Matches mit /g die Match"pos()" immer weiter voranschreitet. Mit vorangestelltem \G schafft man dass an der Stelle des letzten Matches verharrt wird.

Die /c Option ist in diesem Kontext auch wichtig bin aber gerade zu faul nachzuschlagen, hatte was mit dem Reset von pos() bei nicht-Match zu tun. :)

Vorsicht Pattern ausschließlich vor  \G ist buggy!

Übersetzung gibts dazu wahrscheinlich keine, das O'Reilly Buch vom Friedl zu RegEx ist empfehlenswert.

Grüße
  Rolf