to.ni
14.12.2004, 19:44
Hallo Forum,
habe noch nicht die großen Erfahrungen mit RegEx gemacht und spiele mich sozusagen noch mit der Materie.
Jetzt hätte ich aber mal ne Frage in Bezug auf reguläre Ausdrücke in PHP... Vielleicht kennt ihr ja das Wikipedia-Projekt. Wer dort einen Text verfassen will kann verschiedene Formatierungen in Form von Sonderzeichen eingeben, z.B.
'''Dieser Text wird kursiv''' und dieser ''fett'' dargestellt.
Dabei wird das erste ''' durch <i> und das zweite durch </i> bzw. das erste '' durch <b> und das zweite durch </b> ersetzt.
Ich möchte sowas gerne mal nachprogrammieren und hab auch schon was auf die Beine gestellt, allerdings mit zwei Funktionsaufrufen:
$text = "Das ist ''fett'' und hier '''kursiv''' und hier '''''beides'''''";
$neu = preg_replace("/'{3}(.*)'{3}/U","<i>\\1</i>",$text);
$neu = preg_replace("/'{2}(.*)'{2}/U","<b>\\1</b>",$neu);
echo "<p>$neu</p>";
Das funktioniert soweit, aber geht es nicht auch mit einem preg_replace-Aufruf? Käme mir irgendwie sinnvoller/sparsamer vor...
Danke für eure Hilfe!
mfg tobi
habe noch nicht die großen Erfahrungen mit RegEx gemacht und spiele mich sozusagen noch mit der Materie.
Jetzt hätte ich aber mal ne Frage in Bezug auf reguläre Ausdrücke in PHP... Vielleicht kennt ihr ja das Wikipedia-Projekt. Wer dort einen Text verfassen will kann verschiedene Formatierungen in Form von Sonderzeichen eingeben, z.B.
'''Dieser Text wird kursiv''' und dieser ''fett'' dargestellt.
Dabei wird das erste ''' durch <i> und das zweite durch </i> bzw. das erste '' durch <b> und das zweite durch </b> ersetzt.
Ich möchte sowas gerne mal nachprogrammieren und hab auch schon was auf die Beine gestellt, allerdings mit zwei Funktionsaufrufen:
$text = "Das ist ''fett'' und hier '''kursiv''' und hier '''''beides'''''";
$neu = preg_replace("/'{3}(.*)'{3}/U","<i>\\1</i>",$text);
$neu = preg_replace("/'{2}(.*)'{2}/U","<b>\\1</b>",$neu);
echo "<p>$neu</p>";
Das funktioniert soweit, aber geht es nicht auch mit einem preg_replace-Aufruf? Käme mir irgendwie sinnvoller/sparsamer vor...
Danke für eure Hilfe!
mfg tobi