abdulgalimov
@abdulgalimov

Как правильно оформить регулярное выражение в Java?

Есть строка вида "ping pong 123".
Есть регулярное выражение:
Pattern p = Pattern.compile("ping\s*(pong\s*)?(?<SimpleText>.+)?");

Можно ли как то указать яве, что если есть слово "pong" - то оно должна быть в первой группе, а не в группе SimpleText?
Т.е. я хочу получить вот такие результаты:
Matcher m = p.matcher("ping pong 123");
System.out.println(m.group("SimpleText")); // ожидается 123


Matcher m = p.matcher("ping 123");
System.out.println(m.group("SimpleText")); // ожидается 123


Matcher m = p.matcher("ping pong");
System.out.println(m.group("SimpleText")); // ожидается null;  по факту: "pong"


Т.е. хочется чтобы в последнем примере результат был null, а не "pong".
  • Вопрос задан
  • 245 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы