Hallo Robert,
(?<!&(amp|gt|lt|quot));)
ist das, was ich eigentlich bräuchte (was aber nicht funktioniert wegen der unterschiedlichen Längen).
Da gibt es zwei Lösungenswege:
1. Eine brauchbare Regex-Implementierung verwenden ;-)
Die von Java kann das z.B. Perl hingegen kann es auch nicht.
2. Entityreferenzen auch matchen und hinterher entscheiden, ob ersetzt wird
Beispiel in Perl:
$text =~ s/(&(?:amp|gt|lt|quot))?;/$1 ? $1.':' : 'was anderes'/ge;
Grüße
Daniel