frankx: regexp und whitespace ("s" nach dem Ausdruck) und preg_match_all

Beitrag lesen

Hellihello Andreas,

merci!

Für die Modifier siehe http://de2.php.net/manual/en/reference.pcre.pattern.modifiers.php. s schaltet für . das Matchen von Newlines ein.

Also PHP-"Proprietär"?

"This modifier is equivalent to Perl's /s modifier. A negative class such as [^a] always matches a newline character, independent of the setting of this modifier."

Sollte/kann mensch das gewünschte auch anders ausdrücken, also im PREG-Style bleiben?

Das äußere Array ist für die verschiedenen Treffer bei preg_match_all (also für das "all").
Das innere Array enthält auf Position 0 den gesamten getroffenen Text und in den weiteren Positionen die durch die capturing parentheses getroffenen Texte. (wobei sich über flags das Verhalten ändern läßt).

Siehe auch http://de2.php.net/manual/en/function.preg-match-all.php

$matches[0][0] ist ja der Bodyinhalt.

Nein, es ist mehr, die body tags sind ja auch dabei.

Und wenn ich (.*?) setze, bringt es mir in $matches[0][0] den kompletten Suchstring, in $matches[0][1] den Inhalt der (ersten) Klammer.

Oder mit PREG_SET_ORDER bekomme ich erst ein Array aller matches komplettmatches, und ein zweites mit den Ergebnissen in der Klammer. Fein. Das ist wohl geeigneter, wenn ich nur die Inhalte der Klammer haben will (zB. zum ersetzen). In welchem Bedarfsfalle bräuchte man denn PREG_OFFSET_CAPTURE?

Dank und Gruß,

frankx

--
tryin to multitain  - Globus = Planet != Welt