Есть строка вида "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".