我可以知道匹配html标记的正则表达式规则是什么 测试
匹配标记SPAN,无论其中的属性如何。
我现有的规则是这样,但不起作用。
/(<span [^>]*>)>/s
感谢。
答案 0 :(得分:7)
大卫,(<span [^>]*>)>
的原因是你有一个小错字。
您看,该表达式尝试匹配两个结束>
:仔细查看结尾>)>
。例如,它匹配<span hey there>>
但不匹配<span hey there>
要匹配开头范围,请确保只有一个>
。
关于使用正则表达式匹配html的所有免责声明,此正则表达式将执行:
<span[^>]*>
如果您有时期望SPAN
,请确保使其不区分大小写。
只有你有时间:额外的蓬勃发展
在评论中,@ David Ehrmann指出上面的正则表达式将匹配<spanner>
。如果你想让他开心,并确保如果跨度不仅仅是<span>
,它总是在span
之后包含一个空格,你可以使用:
<span(?: [^>]*)?>
然而,在我看来,这是一种不必要的繁荣。当我们使用正则表达式解析html时,我们总是知道我们正在使用粗糙的工具,并且我们依赖于输入是相当良好的。例如,通过上面修改的正则表达式,我们仍然有一百万种方法可以匹配不正确的html,例如:<span classification>
怎么办?没有。了解您的工具,了解他们可以做什么,了解风险,并确定情况何时保证正则表达式以及何时保证DOM解析器。
答案 1 :(得分:1)
/<span[^>]*>[^>]*<\/span>/
答案 2 :(得分:1)