为什么我的字符串不匹配()ing?

时间:2011-08-20 02:53:49

标签: java regex

我在Java String中有一个多行XML blob,我想从中获取一些值。我知道正则表达式和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 个答案:

答案 0 :(得分:1)

我没有足够匹配换行符,启用DOTALL (?s).*<isFoo>true</isFoo>.*修复它。

答案 1 :(得分:-1)

因为您还没有阅读文档。

  

尝试将整个输入序列与模式匹配。

     

如果匹配成功,则可以通过获得更多信息   开始,结束和分组方法。

您应该在开头和结尾添加一个非贪婪的点运算符,或者只使用find()方法。