Comment se débarraser d'un mot spécifique dans une chaine avec REGEX?

Je sais que je peux ignorer un groupe de caractères comme dans [^abc] mais j’ai besoin d’une expression régulière où la négation s’applique au mot spécifique - donc dans mon cas comment puis-je ignorer abc, et non pas tous les caractères dans abc ?

Essayez cet RegEx:

^(abc.+|(?!abc).*)$

Voici le demo.

Cette expression régulière va se débarrasser du mot abc.

^(?!.*abc).*$

Testez ce regex en ligne.

Vous pouvez utiliser:

^(?!.*?bar).*
^(.(?<!bar))*?$

Ou utiliser simplement les éléments de base :

^(?:[^b]+|b(?:$|[^a]|a(?:$|[^r])))*$

Ceux-ci correspondent à tout ce qui ne contient pas abc.

^(?!bar$).*

L’avantage de cette solution est qu’il est possible de se débarrasser (exclure) plusieurs mots :

^(?!abc$|xyz$|efg$).*