You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用正则表达式识别缺失起始&的错误HTML特殊字符

匹配缺失起始&的无效HTML特殊字符的正则表达式

要找出那些缺少开头&的错误HTML实体(比如你示例里的quot;),可以用下面这个正则表达式:

(?<!&)(?:[a-z]+|#x?\d+);

正则拆解说明:

  • (?<!&):这是负向后行断言,用来确保当前匹配内容的前面没有&符号——这一步直接排除了所有格式正确的实体(比如&nbsp;),只瞄准那些漏写了开头&的错误项。
  • (?:[a-z]+|#x?\d+):匹配实体的核心内容,覆盖两种合法实体格式:
    • [a-z]+:匹配字母型实体名称(比如quot、nbsp)
    • #x?\d+:匹配数字型实体,包括十进制(比如#8217)和十六进制(比如#x20AC)的格式
  • ;:匹配实体必须的结尾分号

验证你的示例

拿你提供的HTML片段来看:

<![CDATA[<nolink>blablabla&nbsp;blablabla</nolink>]]>quot; 

这个正则会精准匹配到末尾的quot;,而不会碰前面格式正确的&nbsp;。

额外提示

如果要避免误匹配普通文本里带分号的内容(比如hello;这种无关内容),可以把[a-z]+替换成HTML标准实体名称的枚举,比如:

(?<!&)(?:(?:quot|nbsp|amp|lt|gt|hellip|mdash|ndash|rsquo|lsquo|ldquo|rdquo|apos)|#x?\d+);

这样就只会匹配标准HTML实体漏写&的情况,适配更严格的场景。

内容的提问来源于stack exchange,提问作者GigiManco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:38:23