Thread RegExp PHP -> Perl: preg_split (7 answers)
Opened by MartinR at 2006-04-24 13:40

Dubu
 2006-04-24 15:21
#65280 #65280
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Eigentlich solltest du die Anführungszeichen weglassen und die Slashes lassen.


Edit: Das sollte ich natürlich noch begründen.
preg_split() steht für "split mit Perl-kompatiblen regulären Ausdrücken". (Neben preg_split() gibt es in PHP noch mehr preg_* Funktionen.)

In Perl besteht der Standard-Begrenzer für reguläre Ausdrücke aus Schrägstrichen: /ausdruck/. Man findet sie nicht nur beim Match-Operator ($foo =~ /ausdruck/), sondern auch bei split(), da auch split als ersten Parameter einen regulären Ausdruck erwartet: split /ausdruck/, $string. Die Schrägstriche weisen hier noch extra darauf darauf hin, dass der Trennausdruck kein "normaler String" ist.

Warum benutzt man aber in PHP die Schrägstriche noch zusätzlich innerhalb der Anführungsstriche? Das liegt daran, dass auch in PHP hinter einem regulären Ausdruck noch Modifier stehen können (z.B. "i" für das Ignorieren von Groß-/Kleinschreibung oder "x", wenn Kommentare und Whitespace im Muster erlaubt sind). Diese Modifier landen dann in PHP hinter den Schrägstrichen, aber noch innerhalb der Anführungszeichen.

Und wie in Perl kann man übrigens auch in PHP andere Begrenzer als die Schrägstriche nehmen, wenn man möchte - sogar ein passendes Klammerpaar wie () oder {}.\n\n

<!--EDIT|Dubu|1145885682-->

View full thread RegExp PHP -> Perl: preg_split