Probleme mit RegEx
Helmut Weber
- perl
0 Cheatah
Guten Morgen SelfForum,
ich schreibe gerade ein Skript, mit dem ich sogenannte BB-Tags in HTML-Tags umwandeln kann.
Um z.B. einen Text Fett zu markieren, wende ich folgende RegEx an:
$text =~ s/[b](.*?)[/b]/<b>$1</b>/g;
Aus [b]Hier steht fetter Text[/b] wird also <b>Hier steht fetter Text</b>.
Jetzt möchte ich, das man relativ einfach Listen erstellen kann. Hier ein Beispiel:
[list]1. Listenpunkt
2. Listenpunkt
3. Listenpunkt[/list]
Daraus soll folgendes werden:
<ul>
<li>1. Listenpunkt</li>
<li>2. Listenpunkt</li>
<li>3. Listenpunkt</li>
</ul>
Mit meiner RegEx habe ich mal folgendermassen begonnen:
$text =~ s/[list](.*?)[/list]/<ul><li>$1</li></ul>/gs;
Jetzt fehlt mir nur noch, das ich im Inhalt von $1 jeden Zeilenumbruch durch </li><li> ersetze, weiß aber absolut nicht wie ich dies realisieren kann.
Würde mich über jede Hilfe und Anregung freuen (Auch über allgemeine Anregungen/Hinweise zur Umwandlung von BB-Tags)
Gruß
Helmut Weber
Hi,
$text =~ s/[b](.*?)[/b]/<b>$1</b>/g;
bah. Benutze einen anderen Delimiter als "/", und überlege Dir etwas genauer, was Du eigentlich escapen musst.
Jetzt möchte ich, das man relativ einfach Listen erstellen kann. Hier ein Beispiel:
Daraus soll folgendes werden:
Das ist mit einer einfachen Mustererkennung nicht mehr machbar. Du möchtest einen vollständigen Algorithmus entwickeln.
Cheatah