正则表达式在另一个标签内查找标签

时间:2014-10-15 18:23:11

标签: html regex tags

我想使用正则表达式查找表标记内的所有br标记。这就是我到目前为止所做的:

<table[^>]*>(((<br/>)(?!</table>)).)*</table>

但是这段代码在notepad ++中不起作用。

这是用以下方法测试正则表达式的原因:

<table>
</table>
<table>
<br/>
</table>

基本上应该使用正则表达式找到最后3行,但上面列出的一个正则表达式找不到任何内容。

1 个答案:

答案 0 :(得分:2)

尝试

<table(?: [^<>]+)?>(?:(?!</table>).)*<br/>.*?</table>

使用dot-matches-all修饰符s

Demo.

说明:

<table # start with an opening <table> tag
(?: [^<>]+)?
>
(?: # then, while...
    (?! #...there's no </table> closing tag here...
        </table>
    )
    . #...consume the next character
)*
<br/> # up to the first <br/>
.*? # once we've found a <br/> tag, simply match anything...
</table> #...up to the next closing </table> tag.