Cheatah: Reverse und HTML-Tags

Beitrag lesen

Hi,

Es war hier ja auch das "*Begriff" gemeint, ich habe es für den Endeffekt nur auf "*Begriff*" verallgemeinert.

bei der Verallgemeinerung versagt aber Dein Index, so dass die Suche auf anderem Weg stattfinden muss - der vermutlich auch die Suche nach "Begriff*" und "*Begriff" trivial ermöglicht.

Inzwischen habe ich außerdem probiert das mittels :
=~ s/alles außer TAGS/Funktionsaufruf(Suchmuster)/g

Regular Expressions sind spätestens ab komplexen Strukturen wie XML oder HTML unbrauchbar; zumindest wenn sie das einzige Mittel sind.

$line =~ s/[^<[^>]+>]/&reverse_text($_)/ig;

Eine Zeichenklasse, bestehend aus allem außer "<", "[", "^" und ">", derer mindestens eins, dann die Zeichenkette ">]". Ich bin nicht ganz sicher, ob es hier nicht sogar einen Parse-Error geben müsste.

Leider ist Perl nicht meine Stärke, da ich damit bisher wenig gearbeitet habe.

Regular Expressions kannst Du hier allenfalls als Hilfsmittel einsetzen. Sie reichen keinesfalls aus, um die Lösung alleine zu liefern. Ich denke, dass Du hier mit DOM (oder vielleicht sogar noch einfacher und performanter: einem SAX-Parser) am ehesten zum Ziel kommst. Suche nach einem passenden CPAN-Modul.

Regex sind sowieso ein Fall für sich. Aber ne Lösung muss es doch für diese Problematik geben.

Nicht mit RegExp. Ich möchte Dir aber noch mal dringend anraten, die grundlegende Wahl von Indexen im Hinblick auf "*...*"-Suchmuster zu überdenken.

Cheatah

--
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes