Christian Seiler: RegExp

Beitrag lesen

Hallo,

regexp="es ist (.*?)."

/es ist ([^!?.]*)(.|$)/mg

. machted auf den Punkt (. matched auf jedes Zeichen)
$ matched auf das Ende des Strings (wg. des m-Modifiers, ohne m wird auch das Zeilenende gematched - ganz nach belieben)
Durch das [^!?.] statt dem . wird im Hauptpattern dafür gesorgt, dass keine Satzzeichen beinhaltet werden.

Wenn Du's noch strenger willst:

/es ist (((?!es ist )[^!?.])*)(.|$)/mg

Durch die Lookahead-Assertion im Pattern selbst wird dafür gesorgt, dass der Hauptpattern selbst wieder nicht "es ist " enthalten darf.

Und wenn Du's ganz genau haben willst, kannst Du noch Wort-Boundaries prüfen:

/\bes ist (((?!\bes ist )[^!?.])*)(.|$)/mg

Wird natürlich immer komplexer und damit zeitaufwändiger.

Viele Grüße,
Christian