regex für mehrere Kommentare in einer Zeile
isy
- php
Hallo alle,
ich habe eine Regex um HTML Kommentare aus ASCI-files herauszufiltern.
preg_replace("/^(<!--r).*(-->)$/ie", "", $string);
Wenn es 2 Kommetare in einem String gibt behandelt sie diese wie einen. Sie filtern also aus:
"text <!-- comment_1 --> text <!-- comment_2 --> text"
"<!-- comment_1 --> text <!-- comment_2 -->"
heraus. Wie kann ich die Regex umschreiben, dass sie mehrere Kommentare in einer Zeile erkennt?
Kann mir jemand einen Tip geben, was ich falsch mache?
cheers :)
isy
Hi,
Kann mir jemand einen Tip geben, was ich falsch mache?
Du hast die Greediness nicht beachtet.
Cheatah
Hi *,
für alle die gerne wissen wollen wie es geht: Hier die funktionierende regex.
$string = preg_replace("/(<!--)((?!(<!--)).)*?(-->)/", "", $string);
:) (take it)
isy
Hi,
für alle die gerne wissen wollen wie es geht: Hier die funktionierende regex.
warum so kompliziert (und unperformant)? Deiner vorherigen RegExp fehlte exakt ein Zeichen.
Cheatah
Hi cheatah,
warum so kompliziert (und unperformant)? Deiner vorherigen RegExp fehlte exakt ein Zeichen.
würdes Du mich bitte aufklären welchhes Zeichen an welcher stelle, da ich selbst nicht herausgefunden habe, was daran falsch war. Manchmal muss man eben mit der Nase auf die Lösung gestoßen werden.
preg_replace("/^(<!--r).*(-->)$/ie", "", $string);
Danke :-)