Je voudrais remplacer toutes les occurrences d'un mot spécifique dans une chaîne Java. Par exemple, je voudrais remplacer tous cat
dans la chaîne suivante par cat
. J'ai essayé d'implémenter regex en définissant pattern comme \bcat\b
, mais cela ne semble pas fonctionner dans le cas où des caractères non alphanumériques tels que le soulignement sont autour.
cat catabolic_cat_4cat,6cat
Comment puis-je créer une expression rationnelle pour exclure tous les caractères non alphanumériques autour du mot et produire un aiguillon comme celui-ci:
c*t catabolic_c*t_4cat,6cat
Réponses:
1 pour la réponse № 1Vous pouvez simplement alterner la limite de motclasse de personnage avec une classe de votre propre fabrication comme telle, et (selon la suggestion d'Andreas), utilisez des comparaisons pour éviter d'attraper les caractères environnants dans le remplacement.
(?<=^|[^a-zA-Z0-9])cat(?=[^a-zA-Z0-9]|$)
-1 pour la réponse № 2
Que diriez-vous de rendre votre code plus propre en utilisant cette fonction String intégrée:
String.replaceAll("oldText","newText");