regular expression Problem - alles außer bestimmtest Wort
bearbeitet von Rolf bOhne U sind Wiederholungsoperatoren per Default greedy, mit der U Option werden sie per Default lazy. Es gibt darüber hinaus die Möglichkeit, dem Wiederholungsoperator ein ? nachzustellen, um pro Operator zwischen greedy und lazy umzuschalten. Ich habe das in meinem Vorschlag unten mal gemacht. Muss man nicht.
An Stelle von * gibt es noch das +, um mindestens ein Match zu haben. Du kannst ..* durch .+ ersetzen. Du kannst aber auch .* lassen, weil `<p></p>` dank der negativen Assertion nicht gematcht wird.
Und das / brauchst Du nicht zu escapen, wenn Du einen anderen Regex-Delimiter nimmst. Z.B.:
~~~regex
@<p>(?!</p>).*?</p>@i
~~~
Ist es eigentlich wirklich deine Absicht, `<p></p>` nicht zu matchen?
Und ich frage mich noch, ob Du die g Option hinzufügen musst (global), um mehr als einen Paragraphen zu replacen.
[Hier](https://regex101.com/) kannst Du übrigens spielen.
_Rolf_