2011-08-20 60 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