Bonjour,

J'ai besoin d'une regexp pour remplacer toutes les occurences d'un mot qui n'est pas inclus dans des guillemets ou quotes, par un autre mot.

J'ai commencé à écrire une première version en utilisant les words boundaries:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
translatedString = translatedString.replaceAll("\\b" + keyWordSource + "\\b", keyWordTarget);
Du coup, ça va marcher mais si la chaine est contenue dans des guillemets ou quotes, ça me la remplace aussi alors que je ne le veux surtout pas.

Seconde version en utilisant un "negative lookbehind" avec le word boundary
Code : Sélectionner tout - Visualiser dans une fenêtre à part
translatedString = translatedString.replaceAll("\\b(?<![\'\"])" + keyWordSource + "\\b(?<![\'\"])", keyWordTarget);
Avec cette version là, si j'écris "TITI" ou 'TITI', il n'est pas remplacé mais si par exemple j'ai la châine " TITI", malheureusement, il me la remplace...

Une idée?

Merci.