phpbar.de logo

Mailinglisten-Archive

[php] RegX

[php] RegX

Niels Jäckel niels.jaeckel at silice.de
Don Okt 13 19:57:36 CEST 2005


Hallo Thomas,

> preg_replace('^<p*>$','ss', $a);
> 
> bringt leider nur die Fehlermeldung: Warning: No ending delimiter '^'
> found in /home/hausheer/public_html/transfer/regex.php on line 9


die Regulären Ausdrücke müssen mit einem bestimmten Character
eingeschlossen werden.

z.B. /regexe/
oder |regexe|
oder ich nehm gerne °regexe°

d.h. deine regexe würde dann schonmal so aussehen:

°^<p*>$°

das würde aber nur auf einen text passen der GANZ AM ANFANG <p stehen
hat und GANZ AM ENDE >. Das ist ja aber nicht das, was du möchtest.

°<p*>°

wäre also schon etwas besser. Allerdings macht dein * folgendes: das p
beliebig oft. Ist auch falsch. Also:

°<p.*>°

soll heissen: erst ein p und dann ein beliebiges zeichen (kein umbruch)
beliebig oft. Das frisst dir aber alle Zeichen auf, die kommen könnten.
Mein Vorschlag würde also so aussehen:

°\<p[^\>]*\>°s

wobei der Modifier s hier heisst, dass die Groß- und Kleinschreibung
egal sind.

Im Detail: erst eine spitze Klammer auf, dann ein p oder P und
schließlich alle Zeichen ausser > beliebig oft (heisst auch garnicht)
und am ende dann >.


hth,
Niels

php::bar PHP Wiki   -   Listenarchive