Existe-t-il un moyen de remplacer une regexp par le contenu modifié d'un groupe de capture ?
Exemple :
Pattern regex = Pattern.compile("(\\d{1,2})");
Matcher regexMatcher = regex.matcher(text);
resultString = regexMatcher.replaceAll("$1"); // *3 ??
Et j'aimerais remplacer toute occurrence par 1 $ multiplié par 3.
éditer :
On dirait que quelque chose ne va pas :(
Si j'utilise
Pattern regex = Pattern.compile("(\\d{1,2})");
Matcher regexMatcher = regex.matcher("12 54 1 65");
try {
String resultString = regexMatcher.replaceAll(regexMatcher.group(1));
} catch (Exception e) {
e.printStackTrace();
}
Il lance une IllegalStateException : Aucune correspondance trouvée
Mais
Pattern regex = Pattern.compile("(\\d{1,2})");
Matcher regexMatcher = regex.matcher("12 54 1 65");
try {
String resultString = regexMatcher.replaceAll("$1");
} catch (Exception e) {
e.printStackTrace();
}
fonctionne bien, mais je ne peux pas changer le $1 :(
éditer :
Maintenant, ça marche :)
0 votes
En travaillant directement sur une chaîne de caractères, nous avons finalement este