/ / Filtre de mots Java utilisant regex? - java, regex

Filtre de mots Java utilisant regex? - java, regex

J'essaie de créer un filtre de mots où un utilisateurpeut remplacer certains mots par d'autres. Cependant, il y a évidemment certaines choses que je ne souhaite pas filtrer (des mots qui ne font pas partie des autres mots, par exemple).

Jusqu'ici j'ai ceci:

msg = msg.replaceAll("(?i)\b[^\w -]*"+original+"[^\w -]*\b", replacement);

Pour la plupart, cela fonctionne relativement bien. Cependant, il y a un petit problème.

Lorsque je remplace "m" par, disons "r", il remplace également le "m" par des mots tels que "I" m "- ce qui signifie qu'il devient" I "r", ce qui est évidemment un bug.

J'espère que tu comprends ce que je veux dire. Aidez-moi?

Réponses:

1 pour la réponse № 1

Que diriez-vous quelque chose comme ça?

//If "X-Men" counts as one word:
msg = msg.replaceAll("(?i)(?<![\w"-])"+original+"(?![\w"-])", replacement);
//If "X-Men" counts as two words:
msg = msg.replaceAll("(?i)(?<![\w"])"+original+"(?![\w"])", replacement);