Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

Matcher.replaceAll()

Заменяет все совпадения строкой или результатом функции, которая получает каждое совпадение.

Доступно с: Java 1.4

Синтаксис

public String replaceAll(Function<MatchResult, String> replacer)

Параметры

ПараметрТипОписание
replacerFunction<MatchResult, String> / StringСтрока замены ($1 — группа) или функция, которая по совпадению возвращает замену.

Возвращаемое значение

StringНовая строка.

Примеры

Вычисляемая замена — удвоить каждое число:

void main() {
    Matcher m = Pattern.compile("\\d+").matcher("3 apples and 12 pears");
    String result = m.replaceAll(r -> String.valueOf(Integer.parseInt(r.group()) * 2));
    IO.println(result);
}

Результат:

6 apples and 24 pears

Замена с группой: каждое слово с заглавной буквы:

void main() {
    Matcher m = Pattern.compile("\\b(\\w)(\\w*)").matcher("hello big world");
    IO.println(m.replaceAll(r -> r.group(1).toUpperCase() + r.group(2)));
}

Результат:

Hello Big World

Примечания

Строку замены с группами $1, $2 проще передать в String.replaceAll(). Вариант с функцией (Java 9) нужен, когда замену надо вычислить. Если результат функции содержит $ или \, оберните его в Matcher.quoteReplacement().

См. также

  • String.replaceAll() — Заменяет все совпадения регулярного выражения.
  • Matcher.group() — Возвращает текст найденного совпадения или его группы в скобках.
  • Pattern.compile() — Компилирует регулярное выражение в объект Pattern, который можно использовать много раз.

В учебнике

  • Регулярные выражения — Регулярные выражения в Java: matches, replaceAll, split по шаблону, классы Pattern и Matcher, группы и экранирование обратной косой черты.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.