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

求正确正则表达式匹配指定@、#开头的目标文本

问题描述

待处理HTML文本:

<p>sadadsadsad @Jack&nbsp;</p>
<p>@John Rich &amp; Sarah&nbsp;</p><p>sadadsadsadsadsadasd @Junior Cam AND Ken&nbsp;</p>
<p>
<br></p><p>asdsadasdasdasd #12345-S Company&nbsp;asdsadasdasd @Tom Mer AND Grace&nbsp;</p><p>asdadsadasd @Milo Elisa&nbsp;</p>

需要提取的目标内容:

  • @Jack
  • @John Rich & Sarah
  • @Junior Cam AND Ken
  • #12345-S Company
  • @Milo Elisa
  • @Tom Mer AND Grace

我用的正则 /([@|#|!].+ )/gm 没法正确匹配这些内容,求正确的正则表达式?

正确正则表达式及说明

你之前的正则踩了两个坑:一是.+属于贪婪匹配,会把多个目标内容连在一起匹配;二是没限定准确的结束边界。

推荐使用这个正则:

/([@#][^&]+)(?=&nbsp;)/gm

规则解释:

  • [@#]:匹配开头的@或#,如果需要匹配!开头的内容,改成[@#!]即可
  • [^&]+:匹配除&之外的所有字符——因为目标内容的结束标志是&nbsp;,遇到&就停止匹配,避免贪婪过度
  • (?=&nbsp;):正向预查,仅确认目标内容后跟着&nbsp;,但不会将这个实体包含到匹配结果里

用这个正则可以精准提取你列出的所有目标内容,不会出现匹配错误的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 05:15:28