bonjour,
j'ai le code suivant: (s est une variable string, contenu est une string)
ça fonctionne très bien sauf si j'ai une variable s par exemple slt et que dans mon texte, j'ai slt(bonjour). J'obtiens
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Pattern regex = Pattern.compile("(\\W("+s+")\\W)"); Matcher match = regex.matcher(contenu); boolean b = match.find(); if (b == true) { String matchFound = match.group(); String matchColored ="<font size=\"4\" style bgcolor=\"#33CCFF\">"+matchFound+"</font>"; contenu = contenu.replaceAll(matchFound, matchColored); }donc j'ai voulu faire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Autre erreur : java.util.regex.PatternSyntaxException: Unclosed group near index 5 slt(
et ça marche sauf que maintenant, si j'ai une variable ct et que dans mon texte, j'ai action par exemple, alors ça va me repérer le mot action car il contient ct. or moi, je ne veux que ct. C'est pour ça que j'avais mis les \\W. Donc comment faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Pattern regex = Pattern.compile("(\\W("+s+")\\W)"); Matcher match = regex.matcher(contenu); boolean b = match.find(); if (b == true) { String matchFound = match.group(2); String matchColored ="<font size=\"4\" style bgcolor=\"#33CCFF\">"+matchFound+"</font>"; contenu = contenu.replaceAll(matchFound, matchColored); }
- pour ne surligner que le mot exact et pas un mot qui en inclus un autre
- ne pas tenir compte des caractères non mot d'avant et d'après ?
Merci
Partager