如何匹配标签内的数据,但不要使用其他类似的标签

时间:2013-02-27 15:33:33

标签: regex html

懒惰的Regexr链接:http://regexr.com?33udv

测试字符串:

<li><a href="#"><strong>Start</strong></a></li><li><a href="#">End</a></li>

我想在搜索“开始”时匹配

<li><a href="#"><strong>Start</strong></a></li>

我的模式是:

<li>(?!<li>)*Start.*?</li>

我的问题是它匹配两个列表子项,当我只想匹配包含“开始”的那个。

注意:这是一个非常可预测的html字符串,看起来总是一样的。我知道正则表达式不应该解析html,但问题更多的是理解负面前瞻。

解决方案:

<li>((?!<li>).)*Start.*?</li>

1 个答案:

答案 0 :(得分:2)

您发布的表达式与链接中的表达式不同。我将重点关注链接中的那个。

.*贪婪,它会尝试找到最长的匹配。您希望它为lazy

<li>.*?Start.*?</li>