正则表达式有条件

时间:2010-08-17 14:45:08

标签: html regex

我如何将RegEx写入:

查找匹配,其中>字符的第一个实例位于<字符的第一个实例之前。

(我正在寻找错误的HTML,其中一行中的结尾>没有开头<。)

3 个答案:

答案 0 :(得分:2)

尝试使用正则表达式解析html,甚至尝试使用正则表达式检测损坏的html是一个非常糟糕的主意。

当有一个换行符以便&gt;时会发生什么?例如,字符是该行的第一个字符(有效的html)。

您也可以通过阅读此问题的答案获得一些里程:RegEx match open tags except XHTML self-contained tags

答案 1 :(得分:1)

这会有用吗?

string =~ /^[^<]*>/

这应该从行的开头开始,查找所有不是打开的字符'&lt;'如果找到关闭'&gt;'则匹配标签

答案 2 :(得分:0)

^[^<>]*>

如果您还需要相应的<

^[^<>]*>[^<]*<

如果在第一个>之前可能存在标签,

^[^<>]*(?:<[^<>]+>[^<>]*)*>

请注意,它可能会出现误报,例如

<!-- > -->

是有效的HTML,但RegEx会抱怨。