Используйте регулярное выражение в indexOf и lastIndexOf - PullRequest
0 голосов
/ 20 сентября 2019

В Java есть способ использовать indexOf() или lastIndexOf() с выражением регулярного выражения внутри, как это используется в replaceAll(), для поиска индексов (первого и последнего индексов символа), которые соответствуютвыражение регулярного выражения в строке?

1 Ответ

0 голосов
/ 20 сентября 2019

Примером здесь является шаблон регулярного выражения, который находит 3 'w' рядом друг с другом.m.find() пытается найти совпадение и возвращает true в случае успеха.Используя m.start() после каждого m.find(), вы получаете первый индекс найденного совпадения, а m.end() вы получаете последний индекс найденного совпадения

Pattern p = Pattern.compile("w{3}");
Matcher m = p.matcher("www lskjdflkj www sdflkjslkjlk fsdlkfjww lksjfkjwww sldklk wwwlskjdflkjwwwlkjlj lkj");
    while(m.find())
    {
        System.out.println("start index:"+m.start()+", end index:"+m.end());
    }

:

start index:0, end index:3
start index:14, end index:17
start index:48, end index:51
start index:59, end index:62
start index:71, end index:74

Вы можете сохранить найденные индексы в HashMap или что-то еще, чтобы использовать позже (если вам нужно)

...