Метод start
Метод start класса Matcher возвращает индекс
первого символа текущего совпадения в строке. Индексация
начинается с нуля. Если вызвать метод без параметров,
он вернёт позицию начала всего совпадения. В качестве
параметра можно передать номер группы - в этом случае
метод вернёт индекс начала указанной группы.
Синтаксис
matcher.start()
matcher.start(group)
Пример
Давайте найдём слово abc в строке и выведем
индекс его начала:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main
{
public static void main(String[] args)
{
String str = "xxabcdexx";
Pattern pattern = Pattern.compile("abcde");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
System.out.println(matcher.start());
}
}
}
Результат выполнения кода:
2
Пример
Давайте найдём совпадение с группой и выведем индекс начала этой группы:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main
{
public static void main(String[] args)
{
String str = "12345abcde";
Pattern pattern = Pattern.compile("(\\d+)(abcde)");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
System.out.println(matcher.start(2));
}
}
}
Результат выполнения кода:
5