这个问题在这里已经有了答案:
What to do Regular expression pattern doesn't match anywhere in string?
(8 个回答)
7年前关闭。
我可以知道匹配html标签的正则表达式规则是什么吗
<span id="id1" class="class1" attribute="attribute1">Test</span>
与标签 SPAN 相匹配,无论其中的属性如何。
我现有的规则是这样,但不起作用。
/(<span [^>]*>)>/s
最佳答案
大卫,原因 (<span [^>]*>)>
是你有一个小错字。
你看,这个表达式试图匹配 两个关闭 >
: 仔细看结尾>)>
.例如,它将匹配 <span hey there>>
但不是 <span hey there>
要匹配开口跨度,请确保您只有一个 >
.
有了关于使用正则表达式匹配 html 的所有免责声明,这个正则表达式将执行以下操作:
<span[^>]*>
如果您有时期望
SPAN
,确保不区分大小写。只有你有时间:额外的繁荣
在评论中,@DavidEhrmann 指出上面的正则表达式将匹配
<spanner>
.如果你想让他开心并确保跨度不仅仅是<span>
它总是在 span
之后包含一个空格, 您可以使用:<span(?: [^>]*)?>
然而,在我看来,这是一种不必要的繁荣。当我们用正则表达式解析 html 时,我们总是知道我们使用的是一个粗略的工具,我们依赖于输入的格式。例如,通过上面修改后的正则表达式,我们仍然可以通过一百万种方式匹配不正确的 html,例如:
<span classification>
该怎么办?没有。了解你的工具,知道它们能做什么,了解风险,并决定什么时候需要正则表达式,什么时候需要 DOM 解析器。
关于regex - 获取span标签的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24029313/