Skeeve: RegEx

Beitrag lesen

Moin!

s/&[^a][^m][^p][^;]/&/g

das Erste sollte eigentlich funktionieren

Das funktioniert nicht.
& => & okay
&& => &;
&asdfg => &asdfg

Das liegt z.B. daran, daß Du 4 Zeichen matchst, diese aber nicht mit einbaust.

Funktionieren sollte:
s/&(?!amp;)/&/g

Aber mal ehrlich: Warum will jemand & ersetzen, & aber nicht. Das riecht ziemlich nach defekter Eingabedatei!.

Vielleicht sollte man da eher hingehen und
s/&(?!\w+;|#\d+;)/&/g
verwenden, da so keine entity ersetzt wird.

-- Skeeve