Possible en double:
Java Regex Replace with Capturing GroupJava Regex Remplacer par Capturing Groupe
Est-il possible de remplacer une expression rationnelle avec un contenu modifié du groupe de capture?
Exemple:
Pattern regex = Pattern.compile("(\\d{1,2})");
Matcher regexMatcher = regex.matcher(text);
resultString = regexMatcher.replaceAll("$1"); // *3 ??
Et je voudrais remplacer tout événement avec 1 $ multiplié par 3.
modifier:
On dirait, quelque chose qui 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: Aucun résultat trouvé
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 très bien, mais je ne peux pas changer le 1 :(
Edit2 $:
maintenant , ça marche :)
Incase autres utilisateurs rencontrent un problème similaire, pourriez-vous élaborer ce que vous avez fait pour corriger le problème? :) – doomspork
Je ne saurais pas comment le faire en Java, mais en Perl c'est facile. :-P $ foo = '12 54 1 65 '; $ foo = ~ s/(\ d {1,2})/$ 1 * 3/par exemple; –
ici était une réponse qui décrit comment le faire, je ne sais pas où il est maintenant ... (j'ai accepté une question qui résout le problème, mais a disparu.Etrange ...) – user