Я использую следующее регулярное выражение:
(?<=<((Pswrd>)|([^/]{1,2147483646}?:Pswrd>)))((?s).+?)(?=</(\\1))
И у меня есть следующий текст для сопоставления:
<abc:Pswrd>PASSWORD_ONE</abc:Pswrd>
<Pswrd>PASSWORD_TWO</Pswrd>
Мне нужно сопоставить контекст обоих тегов XML, ноработает только для второго.
Вывод:
PASSWORD_TWO
И он должен быть:
PASSWORD_ONE
PASSWORD_TWO
Кажется, что OR по какой-то причине не работает?
String message = " <abc:Pswrd>PASSWORD_ONE</abc:Pswrd>\n" +
" <Pswrd>PASSWORD_TWO</Pswrd>";
String regex = "(?<=<((Pswrd>)|([^/]{1,2147483646}?:Pswrd>)))((?s).+?)(?=</(\\1))";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(message);
while (matcher.find()) {
String group = matcher.group();
System.out.println(group);
}
Спасибо
Обновление: должна быть соответствующая группа 0.