正则表达式匹配内部发现

时间:2014-03-12 02:33:38

标签: html .net regex

我尝试使用.NET正则表达式匹配某些html列表标记<ol>...</ol><ul>...</ul>。我可以使用

匹配其中任何一个或两个
<(ol|ul)( )?>.*</( )?\1>

但只有在该行没有相同列表的情况下。

例如,这将获得两次点击:

<ol>this is the first list</ol>...<ul>this is the second list</ul>;

但这只会受到一次打击:

<ol>this is the first list</ol>...<ul>this is the second list</ul>...<ol>this is the third list</ol>

我觉得我需要在表达中间替换.*,但我还没能弄明白。任何帮助将不胜感激。

编辑:对不起,我想应该提到(@aliteralmind)我专门寻找<ol><ul>标签(及其结束标签),两种类型肯定都会包含{{1在...内的元素。

1 个答案:

答案 0 :(得分:1)

要捕获HTML列表中的所有行,您可以使用:

<(ol|ul)\b[^>]*>(.*?)</\1>

Regular expression visualization

Debuggex Demo

这需要“dot-matches-all”。捕获组2包含所有行。 .*后需要问号才能转到第一个结束标记。

(出于某种原因,这在Debuggex中不起作用,但它在RegexBuddy中适用于Perl。)