Regex-Problem

jiro.b

Grünschnabel
Hi!
Ich hänge den ganzen Nachmittag an einem Problem mit einem Regulären Ausdruck in PHP.

Gegeben ist folgender String:

PHP:
$string = <<<QT
Textdavor [ code=html]
HTML-QT-1
[ /code]Die "Hissatsu Waza", starke Limit-Break...
[ code=html]
HTML-QT-2
[ /code]Textdanach
QT;

Ein Regex soll nun den String auflösen, und zwar so, dass man auf den Text innerhalb sowie außerhalb des [ code=html ][ /code ]-Bereiches zugreifen kann. Die \n-Zeilenumbrüche außerhalb der [ code=html ][ /code ]-Tags sollen mittels einer Funktion in <br>s umgewandelt werden, der Text in den Tags [ code=html ][ /code ] soll so bleiben wie er ist. Ich hab folgendes ausprobiert:

PHP:
!(.+)(\[html\](.+)\[/html\])(.+)!Uis

Hierbei gibt man mir allerdings nur die ersten beiden Charaktere nach dem [ /code ]-Tag zurück, da das ganze ja ungreedy ist. Mit greedy klappt das auch nicht.

Kann mir einer helfen? Vielen Dank im Vorraus!

MfG
-jiro
 
Zuletzt bearbeitet von einem Moderator:
Probiers mal so (bin auch nicht so fit in RegEx):
Code:
=(*.)\[html\](*.)\[\/html\](*.)=isU
 
Ne, der Ausdruck geht auch nicht ;), da .* auch für jedes beliebige Zeichen steht. Es wird dann einfach ne leere Zeichenkette zurückgegeben für das letzte (.*).

Trotzdem Danke. Hat jemand noch vorschläge?

Gruß
-jiro
 
Zurück