phpbar.de logo

Mailinglisten-Archive

[php] Regulärer Ausdruck mit Zeilenumbruch

[php] Regulärer Ausdruck mit Zeilenumbruch

Niels Jäckel niels.jaeckel at silice.de
Mon Mar 19 14:46:38 CET 2007


Hallo Harald,

> <shot><date>01.01.1970</date><text>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</text></shot>
> <shot><date>02.01.1970</date><text>Nam pretium felis et lectus. Pellentesque bibendum orci sed metus</text></shot>
> 
> Mein regulärer Ausdruck zum Suchen:
> <shot><date>(.*?)</date>(.*?)</shot>
> 
> Problem: Solange im Text keine \n \r oder \t vorkommen, funktioniert das. Tauchen die Sonderzeichen im Text auf, findet preg_match nichts mehr. Ich hab jetzt schon herausgefunden dass ich den Modifier "s" verwenden muss.. Nur schaff ichs nicht, dass ich meinen RegEx entsprechend anpasse...

du hast den Finger schon ziemlich genau drauf. Der . in deiner RegExe 
match normalerweise KEINE Zeilenumbrüche. Wenn du allerdings dem 
Modifier s verwendest ändert er dieses Verhalten [1] ;-)

Die Regexe könnte dann so aussehen (für preg_match() !)
~<shot><date>(.*?)</date>(.*?)</shot>~s


Grüße,
Niels

1: http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php

php::bar PHP Wiki   -   Listenarchive