Thread Regulärer Ausdruck (11 answers)
Opened by Kruemel at 2011-08-31 09:55

clms
 2011-08-31 23:12
#151988 #151988
User since
2010-08-29
373 Artikel
BenutzerIn
[default_avatar]
2011-08-31T09:31:04 payx
Code (perl): (dl )
$text =~ s/\/begin blubber.*\/end blubber\n//s;

Das würde ich sicherheitshalber so schreiben
Code (perl): (dl )
$text =~ s/\/begin blubber.*?\/end blubber\b//sg;

damit das .* nicht "greedy" ist.

So wie ich Krümel verstanden habe, können mehrere /begin blubber .. /end blubber Blöcke vorkommen.
Dein Code würde alles vom Beginn des ersten Blocks bis zum Ende des letzten löschen.

Zudem habe ich den Zeilenumbruch \n hinter dem abschließenden blubber durch ein Wortende/anfang \b ersetzt. Das erscheint mir ebenfalls robuster.
Wenn hinter dem abschließenden blubber immer direkt ein Zeilenumbruch kommen muss, der auch entfernt werden soll, ist \n natürlich richtig. Eventuell kommt auch \s*\n in Frage. Dann dürfen zwischen "blubber" und dem Zeilenende noch Leerzeichen vorkommen.

View full thread Regulärer Ausdruck