Daniel Thoma: Regex: ersetze ;) falls davor nicht abc|de|ghij steht

Beitrag lesen

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