Kurti: Regulärer Ausdruck /\G..../

Hallo,
gerade bin ich über folgenden regulären Ausdruck gestolpert.

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.
Ist dies ein Schreibfehler oder was bedeutet dies?
Danke
Kurti

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

    Was hälst du den von Perldoc? http://perldoc.perl.org/perlre.html

    Struppi.

    1. Hi,

      Was hälst du den von Perldoc? http://perldoc.perl.org/perlre.html

      Leider nicht viel, weil ich nichts vestehe.
      Kennt jemand vielleicht eine gute deutsche Übersetzung oder andere Beschreibung?
      Bisher habe ich \G in keiner deutschen Doku gefunden.

      1. Was hälst du den von Perldoc? http://perldoc.perl.org/perlre.html
        Leider nicht viel, weil ich nichts vestehe.
        Kennt jemand vielleicht eine gute deutsche Übersetzung oder andere Beschreibung?
        Bisher habe ich \G in keiner deutschen Doku gefunden.

        Das verstehst du nciht?
        #  \G Match only at pos() (e.g. at the end-of-match position

        of prior m//g)

        Struppi.

  2. 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