【发布时间】:2010-03-11 18:55:58
【问题描述】:
我想完成这个(我相信无效)正则表达式试图做的事情:
<p><a>([^(<\/a>)]+?)<\/a></p>uniquestring
基本上匹配除结束锚标记之外的任何内容。简单的非贪婪在这里没有帮助,因为 `uniquestring' 很可能在另一个遥远的结束锚标记之后:
<p><a>text I don't <tag>want</tag> to match</a></p>random
data<p><a>text I do <tag>want to</tag> match</a></p>uniquestring more
matches <p><a>of <tag>text I do</tag> want to match</a></p>uniquestring
所以我在锚标签之间有更多标签。我正在使用uniquestring 的存在来确定我是否要匹配数据。因此,一个简单的非贪婪最终匹配了从我不想要的数据的开头到我想要的数据的结尾的所有内容。
我知道我正在接近正则表达式(或至少我对它们的了解)不擅长解决的问题。我可以通过 HTML/XML 解析器中的数据,但这只是一个简单的(ish)搜索。
是否有一些我只是想念的简单方法来做到这一点?
【问题讨论】: