2014-05-19 119 views
0

匹配查找HTML/XML元素或使用正則表達式 正則表達式找到HTML/XML元素匹配或使用正則表達式

在這裏,我想找到ID或沒有id屬性的HTML或XML元素查找HTML/XML元素。

示例HTML文件:

< P類=「TXT妮」 >輻射吸收劑量的紅骨髓,分化型甲狀腺癌的有I-131的治療的關鍵器官(碘) ,不能直接測量。作爲放射性碘的濃度在血液可比和大多數器官(< A HREF = 「#bib5」 ID = 「bib_5」 >科爾伯特<EM>等</EM >。2007 < /一個>),並且被認爲是在紅色骨髓中相似,對血液的吸收劑量似乎是輻射吸收劑量的良好一階近似,其中,造血系統和更好的手段來量化治療的暴露量,而不是總量的管理。 </P >

在此以上樣品是單線(不輸入標記),它現在含有兩個<一個>標籤我想找到每一個<到> < /一個>分開。

在這裏,我使用的正則表達式

< A HREF = 「#([^」] *) 「ID = 」([^「] *)」 >(。*)< /一個>

上述正則表達式將數學的所有<的線>標籤,我指的是正則表達式以上returen以下mathch

< A HREF = 「#bib5」 ID = 「bib_5」 >科爾貝rt <em> et al </em >。 2007 < /一>),並且被認爲是紅髓相似(< A HREF = 「#bib9」 ID = 「bib_9」 2005年< > Sgouros/A >

但我想單獨像相互匹配下面

1. < A HREF = 「#bib5」 ID = 「bib_5」 >科爾伯特<EM>等</EM >。2007 < /一個>

2。< A HREF = 「#bib9」 ID = 「bib_9」 2005年< > Sgouros/A >

我希望你能理解我的要求

注:

元素還可以包含子元件作爲<我>,<EM>,<b>

回答

0

嘗試更換喲烏爾正則表達式:

<a href="#([^"]*?)" id="([^"]*?)">(.*?)</a> 

的*符號後的問號會告訴正則表達式引擎來尋找儘可能少出現越好。

您可能會發現關於這個問題的這個頁面信息:http://www.regular-expressions.info/repeat.html

+0

像所有嘗試解析使用正則表達式XML(或HTML),這是錯誤的。我可以看到至少有三個錯誤,但沒有真正嘗試:它要求屬性按特定順序排列,它需要屬性之間的空格在恰當的位置,並且它要求將屬性值括在雙引號中,而不是單引號 –

+0

對不起。我的回答是對OP的正則表達式模式的簡單修改,以使其適用於他的用例。當然,爲了使它具有通用性,需要更多的工作:) –