Ich bin grad irgendwie am verzweifeln mit den guten alten Reg. Exp.
Ich versuche aus einem String immer den nächsten BBCode rauszusuchen.
preg_match('#\[([/]{0,1})(b|code|color|direction|font|i|img|indent|noparse|php|quote|size|u|ul|url)\]#', $this->codePreParse, $bbTag, PREG_OFFSET_CAPTURE, $this->pointer);
Das funktioniert bei einfachen Tags wie [ b] oder [ /i] wunderbar.
Nun will ich aber auch, dass z.B. [ quote='DarkSyranus'] aus dem Text gefilter wird.
Dabei scheitert es dann leider auch.
Gehen wir mal davon aus, dass man nur die Zeichen a-z A-Z 0-9 # dort benutzen dürfte, dann würde man ja folgendes machen können.
([a-zA-Z0-9\#='])
Allerdings wäre es ganz schön, wenn es gleich nach Regel geht, sprich ...|url)(="[a-zA-Z0-9\#]*")\]#.
Das funktioniert auch, zumindest werden dann alle Tags der Art nach [ quote='DarkSyranus'] rausgesucht.
Aus verschiedenen Gründen brauche ich jedoch beides in einem, also ein Pattern, dass sowohl die Einfachen als auch die Erweiterten BBCodes raussucht.
Hat jemand eine Idee, wie man sich das irgendwie zurechtbasteln kann?
Bitte kommt jetzt nicht mit dem Vorschlag eine BBCode-Klasse zu nehmen, Danke !!