Hallo Robert,
Leider beschwert sich PHP, wenn ich statt des konstanten Strings alternativ unterschiedlich lange Strings benutze:
(?<!(abc|de|ghij));)
da kommt dann eine Warnung:
Compilation failed: lookbehind assertion is not fixed length at offset 16 in <filename> on line <linenumber>
(der Offset scheint sich auf die schließende Klammer der Alternative zu beziehen)
Es gibt noch einen dritten Lösungsweg (außer denen, die Daniel beschrieben hat):
(?<!abc)(?<!de)(?<!ghij);)
Da eine Lookbehing-Assertion die Länge 0 hat, kannst Du da auch mehrere hintereinander schreiben, wenn Du sonst den Inhalt mit | trennen würdest. Achtung allerdings: die Menge der Lookbehind-Assertions ist begrenzt und außerdem verlangsamt jede weitere Assertion den Ausdruck. Daher: dort, wo Du zusammenfassen kannst, weil die Teile die gleiche Länge haben, solltest Du das ganze in eine Assertion packen, also bei Deinem Enity-Ausdruck:
(?<!")(?<!&)(?<!&(lt|gt));)
Viele Grüße,
Christian