RegEx und BB-Code

ZodiacXP

Erfahrenes Mitglied
Hallo.
Ich habe z.B. folgenden BB-Code:
Code:
[A=http://google.de]http://google.de[/A][BR]<br>[A]Dies ist ein Link[/A]http://web.ddd<br>[A=yahoo.de]Dies ist ein Link zu yahoo.de[/A]<b>

Das einzige was ich jetzt dafür such ist ein gescheites Reg-Muster. Bisher habe ich
Code:
http://.*?\.\w{2,4}

Allerdings findet das auch URL's die IN einem BB-Tag drin stehen. Ich würde aber gerne nur die angezeigt bekommen die NICHT von einem [...] [/...] eingeschlossen werden.

Vielen Dank!
 
Zuletzt bearbeitet von einem Moderator:
Probier mal folgenden regulären Ausdruck: (?<!\])http://.*?\.\w{2,4}(?!\[). Dieser schließt die Zeichenketten aus, die einem ] folgen oder einem [ vorangestellt sind.
 
Super! Danke! In RegEx kennich mich noch net so jut aus.

Hab aber noch n bischen was hinzugefügt ;)
Code:
/(?!(\[.*?\]))htt[p||s]:\/\/(www\.||)[\w0-9\.]*?\.\w{2,4}()(?![\w.*?\[\/])/i
(ist für preg_)
So scheint es nichts zu ändern das innerhalb des Containers eines BB-Tags steht.

Neues Problem: Er ändert alles was innerhalb eines BB-Tags steht...

Bsp.: [a=http://google.de]http://google.de[/a] => [a=]http://google.de[/a]
 
Zuletzt bearbeitet:
Ich möchte Grundsätzlich jeglichen Text ausgegeben haben der Außerhalb von den BB-Tags selbst steht. Bsp: [Nichts aus dieser Klammer]
UND
auch nur jenen Text der außerhalb der BB-Tag Container steht. Bsp: [TAG]Nichts was im Container steht[/TAG]
 
Also ich habe einen ungeparste String mit vielem verschiedenen BB-Codes drin.
Aus dem will ich nun möglichst mit wenig Serverlast (weil das rest Script drumrum schon viel ist) eigentlich nur alles rausfiltern das nicht durch diese BB-Tags in irgendeiner Art eingeschlossen ist.

Es soll so wie in einer Forensoftware geschehen wo man immer sieht "Hyperlinks automatisch umwandeln". Ich bin das wBB schon halb durchgegangen komm aber nicht dahinter wo das verankert ist. Tappe also grad im dunkeln.
 
Zuletzt bearbeitet:
Mit dem Kontext der Anwendung des regulären Ausdrucks meinte ich eigentlich, in welcher Funktion dieser genutzt werden soll. Ist es beispielsweise die preg_replace()-Funktion kommt es nicht nur auf das Suchmuster sondern auch auf das Ersatzmuster an.
 
Ich möchte Grundsätzlich jeglichen Text ausgegeben haben der Außerhalb von den BB-Tags selbst steht.
Um jegliche BBCode-Tags zu entfernen, kannst du folgenden regulären Ausdruck nutzen:
Code:
\[([^]=]+).*?\](?:.*?\[/\1\])?

Falls diese Antwort nicht deinen Erwartungen entspricht, bitte ich dich, dein Anliegen noch einmal klar und verständlich darzulegen.
 
Zurück