Regulärer Ausdruck will nicht

Nasenbaer

Mitglied
Hi,
der folgende Funktionsaufruf soll mir BBCode reparieren also Wörter der Form "[" gefolgt von 0-1mal "/" gefolgt von "u" oder "i" oder "b", gefolgt von "]", die durch wordwrap() zerstört wurden. Mit zerstört meine ich, dass es sein kann, dass in dieser o.g. zeichen folge nun Leerzeichen auftreten können.

PHP:
$strString = preg_replace('[\x5B]/\s*(\/?)([biu])\s*[\x5D]','[$1$2]',$strString);

Laut http://www.cuneytyilmaz.com/prog/jrx/ ist mein Ausdruck auch richtig aber PHP 5.2.1 meckert rum:
Warning: preg_replace() [function.preg-replace]: Unknown modifier '/'

Kann mir jemand sagen was ich hier falsch mache - bin nicht so geübt mit regexps.
 
Die perl-kompatible reguläre Ausdrücke (ihre Funktionen mit „preg_“ beginnend) müssen mit Begrenzern notiert werden, der jeweils immer das erste Zeichen ist. In deinem Fall ist dies die öffnende eckige Klammern, dessen Gegenstück und damit der abschließende Begrenzer die erste schließende eckige Klammer ist (in deinem Beispiel das sechste Zeichen). Alle nachfolgenden Zeichen werden als Modifikatoren behandelt.
 
Zurück