После поиска () найти более чем один раз в регулярном выражении в java - PullRequest
0 голосов
/ 12 января 2020

Мне нужно найти (), чтобы найти более одного раза. Например, в приведенном ниже регулярном выражении он получит только «я - крутой1», но я также хочу, чтобы он получил «я - крутой2» и «я - крутой3». Как бы я это сделал?

Pattern pattern = Pattern.compile("i am cool([0-9]{1})", Pattern.CASE_INSENSITIVE);
String theString = "i am cool1 text i am cool2 text i am cool3 text";
Matcher matcher = pattern.matcher(theString);
matcher.find();
whatYouNeed = matcher.group(1);

1 Ответ

1 голос
/ 13 апреля 2020

Вы должны вызывать find () для каждого совпадения. Вы можете получить все совпадения с помощью group () (без индекса).

    Pattern pattern = Pattern.compile("i am cool([0-9]{1})", Pattern.CASE_INSENSITIVE);
    String theString = "i am cool1 text i am cool2 text i am cool3 text";
    Matcher matcher = pattern.matcher(theString);
    while (matcher.find()) {
        System.out.println(matcher.group());
    }

Это напечатает

i am cool1
i am cool2
i am cool3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...