[vienna.pm] Re: [vienna.pm] Reguläre Ausdrücke?

Stefan Heinecke nosleep at ircelite.org
Mon Jan 21 08:36:15 CST 2002


* * * vienna-pm-list * * *


On Mon, Jan 21, 2002 at 02:40:14PM +0100, Philipp Gühring wrote:
> Ich bräuchte eine Idee für folgendes Problem:

Kostet 5 Euro ;)

> Ich hab einen String mit folgendem Inhalt:
> Huber & Co. -&- -ä- &&
> Und hätte gerne folgendes:
> Huber & Co. -&- -ä- ää
> Also alle & durch & ersetzen(breinigen), außer sie sind bereits Teil
> gültiger Tokens.

Das Problem ist das es viele Entinitäten gibt, und
Du dich auf die Whitespaces idR. nicht verlassen kannst.
Wenn da Huber&Co steht musst Du herausfinden ob das
eine gültige Entinität ist die mit ';' abgeschlossen ist
bevor das nächste Whitespace oder CR/LF folgt.

> Irgendeine Idee wie ich anfangen könnte?

Ja, http://www.perldoc.com/perl5.6/lib/HTML/Entities.html ist dein Freund.

> Komm ich da mit einem s///g durch?

Evtl. mit einem regulärem Ausdruck, dafür bin ich jetzt aber zu faul
den mit allen Konsequenzen durchzudenken ;)

> Muß ich alles von Hand parsen?

Nein, du musst nur Entinitäten erkennen, eine Entinität in HTML
ist immer '&<a-zA-Z0-9>;'. Der einfachste Weg ist wohl
ein regulärer Ausdruck der auf '&' und ';' arbeitet, wobei ziemlich
kranke Sachen schwer zu finden sein werden.

Ich würde die Dokumente jeweils vor dem Import in einen definierten
Zustand bringen - alle Entinitäten raus und dann wieder rein.
Sonst regexp'd du dich ziemlich blöde.

http://www.perldoc.com/perl5.6/lib/HTML/Entities.html kann das.
###
You are subscribed to vienna-pm-list as Stefan Heinecke <nosleep at ircelite.org>
http://www.fff.at/fff/vienna.pm/



More information about the Vienna-pm mailing list