Mailinglisten-Archive |
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