Donc, avec regex en Java, je veux écrire une regex qui correspondra si et seulement si le motif n'est pas précédé de certains caractères. Par exemple:
String s = "foobar barbar beachbar crowbar bar ";
Je veux faire correspondre si bar n'est pas précédé de foo. Donc, la sortie serait:
barbar
beachbar
crowbar
bar
Je sais que c'est probablement une question très simple. J'essaie d'apprendre le regex, mais en attendant, j'ai besoin de quelque chose pour travailler maintenant.
Vous voulez utiliser negative lookbehind
comme ça:
\w*(?<!foo)bar
Où (?<!x)
_ signifie "seulement s'il n'a pas" x "avant ce point".
Voir Expressions régulières - Lookaround pour plus d'informations.
Edit : ajout du \w*
pour capturer les caractères précédents (par exemple "plage").