这里是(从原来的简化)示例文本:负回顾后发问题
<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