Метод reset класса Matcher
Метод reset класса Matcher сбрасывает
текущее состояние сопоставления. После вызова этого
метода позиция поиска возвращается в начало входной
последовательности, а вся информация о предыдущих
совпадениях очищается. Это позволяет повторно
использовать уже созданный объект Matcher
для нового прохода по той же самой строке без
создания нового объекта. Метод не принимает
параметров и возвращает ссылку на текущий объект
Matcher, что удобно для цепочки вызовов.
Синтаксис
matcher.reset()
Пример
Давайте найдем все совпадения, а затем сбросим состояние и найдем их снова:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main
{
public static void main(String[] args)
{
String str = "abcde abcde";
Pattern pattern = Pattern.compile("abc");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group());
}
matcher.reset();
while (matcher.find()) {
System.out.println(matcher.group());
}
}
}
Результат выполнения кода:
"abc"
"abc"
"abc"
"abc"
Пример
Давайте проверим, что после сброса метод
find снова начинает поиск с начала строки:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main
{
public static void main(String[] args)
{
String str = "12345";
Pattern pattern = Pattern.compile("\\d");
Matcher matcher = pattern.matcher(str);
matcher.find();
System.out.println(matcher.group());
matcher.reset();
matcher.find();
System.out.println(matcher.group());
}
}
Результат выполнения кода:
"1"
"1"
Смотрите также
-
класс
Matcher,
который выполняет сопоставление с образцом -
метод
find,
который ищет следующее совпадение -
метод
group,
который возвращает найденную подстроку -
метод
usePattern,
который заменяет шаблон сопоставления