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