我尝试使用.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在...内的元素。
答案 0 :(得分:1)
要捕获HTML列表中的所有行,您可以使用:
<(ol|ul)\b[^>]*>(.*?)</\1>
这需要“dot-matches-all”。捕获组2包含所有行。 .*
后需要问号才能转到第一个结束标记。
(出于某种原因,这在Debuggex中不起作用,但它在RegexBuddy中适用于Perl。)