Чи є спосіб замінити регулярний вираз зміненим вмістом групи захоплення?
Приклад:
Pattern regex = Pattern.compile("(\\d{1,2})");
Matcher regexMatcher = regex.matcher(text);
resultString = regexMatcher.replaceAll("$1"); // *3 ??
І я хотів би замінити всі випадки на $ 1, помножений на 3.
редагувати:
Схоже, щось не так :(
Якщо я використовую
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();
}
Він видає IllegalStateException: Збіг не знайдено
Але
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();
}
працює нормально, але я не можу змінити $ 1 :(
редагувати:
Тепер це працює :)