Regex: Look(ahead|behind)
Günther S
- php
Hallo,
ich habe ein kleines Problem mit Lookaheads und -behinds.
Anwendungsfall BBCode:
$pattern = '@\[zitat(=(.*?))?\]((?U).*)\[/zitat\]@is';
Funktioniert soweit ganz gut, es soll aber noch insofern geändert werden, als dass im mittleren Part ((?U.*) kein anfangs-tag [zitat(=(.*?))?] mehr stehen soll. Das ((?U.*) soll also die Bedeutung bekommen "matche (nicht-gierig), sofern kein anfangs tag in dem string ist". Bei der Suche nach Möglichkeiten, das zu realisieren, bin ich auf Lookaheads und -behinds gestoßen, allerdings verstehe ich das so, als könnte man nur prüfen, ob sich das Anfangs-Tag am Anfang oder Ende des mittleren Teils befindet, nicht aber mittendrin. Wie kann man das denn bewerkstelligen?
Gruß,
Günther