我如何将RegEx写入:
查找匹配,其中>
字符的第一个实例位于<
字符的第一个实例之前。
(我正在寻找错误的HTML,其中一行中的结尾>
没有开头<
。)
答案 0 :(得分:2)
尝试使用正则表达式解析html,甚至尝试使用正则表达式检测损坏的html是一个非常糟糕的主意。
当有一个换行符以便&gt;时会发生什么?例如,字符是该行的第一个字符(有效的html)。
您也可以通过阅读此问题的答案获得一些里程:RegEx match open tags except XHTML self-contained tags
答案 1 :(得分:1)
这会有用吗?
string =~ /^[^<]*>/
这应该从行的开头开始,查找所有不是打开的字符'&lt;'如果找到关闭'&gt;'则匹配标签
答案 2 :(得分:0)
^[^<>]*>
如果您还需要相应的<
,
^[^<>]*>[^<]*<
如果在第一个>
之前可能存在标签,
^[^<>]*(?:<[^<>]+>[^<>]*)*>
请注意,它可能会出现误报,例如
<!-- > -->
是有效的HTML,但RegEx会抱怨。