2011-08-20 37 views
1

我有一个Java字符串中的多行XML blob,我想grep一些值。我知道正则表达式和XML混合像原油和面食,但我保证我真的没有尝试任何复杂的东西。为什么我的字符串不匹配()ing?

示例XML字符串object

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

所有我想要的是object.matches("<isFoo>true</isFoo>"),以评估true。我试过在.*(和[\n.]*以防万一换行符)包裹正则表达式的肉,但没有快乐。

它为什么不匹配?

回答

0

我刚刚不够匹配换行符,打开DOTALL (?s).*<isFoo>true</isFoo>.*修复它。

-1

因为您还没有阅读文档。

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

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

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

+0

如上所述,我也试过'。* true。*' – blahdiblah

+0

正如我刚才提到的,您应该使用非贪婪版本。 – Voo

+0

为什么会有帮助? – blahdiblah

相关问题