Почему моя строка не совпадает () с? - PullRequest
1 голос
/ 20 августа 2011

У меня есть многострочный блоб XML в строке Java, из которого я хотел бы извлечь некоторые значения.Я знаю, что регулярные выражения и XML смешиваются, как сырая нефть и паста, но я обещаю, что на самом деле я не пытаюсь ничего сложного.

Пример XML object Строка:

<ObjectDto>
  <created>1313825589244</created>
  <description>description</description>
  <id>649</id>
  <isFoo>true</isFoo>
<ObjectDto>

Все, что язначение для object.matches("<isFoo>true</isFoo>") должно быть равно true.Я пытался обернуть мясо регулярного выражения в .*[\n.]* на случай, если его бросили символы новой строки), но без радости.

Почему оно не совпадает?

Ответы [ 2 ]

1 голос
/ 20 августа 2011

Я не соответствовал символам новой строки достаточно сложно, включение DOTALL (?s).*<isFoo>true</isFoo>.* исправило это.

0 голосов
/ 20 августа 2011

Потому что вы не читали документацию.

Пытается сопоставить всю последовательность ввода с шаблоном.

Если совпадение прошло успешно, дополнительную информацию можно получить через методы start, end и group.

Вы должны либо добавить оператор нежадной точки в начале и конце, либо просто использовать метод find().

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