這裏是(從原來的簡化)示例文本:負回顧後發問題
<start1>
<name="4654">
bla bla bla bla
<tags="bla" model="c">
bla bla bla bla
<start2>
<name="12346">
bla bla bla bla
<tags="bla" model="d">
bla bla bla bla
<start3>
<name="73535">
bla bla bla bla
<tags="bla" model="c">
<start4>
<name="546875">
bla bla bla bla
<tags="bla" model="c">
bla bla bla bla
這裏是我的正則表達式(點相匹配的新行選項上)
name="([\d]+)".+?(?<!start)tags="([^"]+?)" model="c"
正如你可以看到有4塊,但我需要匹配那些與模型=「C」。但是.+?
正在捕獲超過它的需求。屏蔽負面lookbehind壓制它沒有工作......任何想法如何排除塊?
更新(澄清我想達到的目標):
出的樣本數據我想匹配以下3塊:
首場比賽
<name="4654">
bla bla bla bla
<tags="bla" model="c">
第二場比賽
<name="73535">
bla bla bla bla
<tags="bla" model="c">
第三場比賽
<name="546875">
bla bla bla bla
<tags="bla" model="c">
如果是XML,最好使用XPath。 – 2011-05-23 00:05:20
這看起來不像XML。這是更糟的事情。 :) – Amadan 2011-05-23 00:08:35
它不是。我剛剛使用了XML元素來簡化示例數據。 – Pablo 2011-05-23 00:08:50