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

正则表达式技术问询:如何匹配至特定字符提取哈希标签?

搞定哈希标签提取的正则方案

嘿,刚学几小时正则就上手实践,这节奏超赞!我来帮你把这个哈希标签提取的问题捋清楚~

首先先明确你的需求拆解:

  • 标签开头最多2个连续的#(不能更多)
  • 标签内容允许包含任意特殊字符
  • 匹配到空格、换行或者新的#时立刻停止

最终可用的正则表达式

#{1,2}[^#\s]+

逐部分解释

  • #{1,2}:精准匹配1到2个连续的#,完美满足“连续#不得超过两个”的要求
  • [^#\s]+:[^...]表示匹配不在括号内的任意字符,这里排除了#和空白字符(空格、换行都属于空白字符\s),+表示匹配至少一个字符。这样就会自动在遇到空格、换行或者新的#时停止匹配,同时支持所有特殊字符(比如你示例里的!、_、@、```都能被匹配到)

纠正你之前的问题

你之前试的\#{1}(\S|\N)和\#{1}.+(\S|\N)有两个核心问题:

  1. .+是贪婪匹配,会一直匹配到文本末尾,不会自动在空格/换行/#处停止
  2. 没有处理“最多两个#”的规则,也没限制遇到新#就停止

测试示例验证

拿你给的例子#3!x_j@...的内容来说,这个正则会精准匹配到#3!x_j@(直到后面的空格或#为止);另外像##foo@bar、#hello-world!这类标签也能完美匹配,而###too-many(超过2个#)、#abc def(只会匹配到空格前的#abc)这类情况也符合你的预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:56:42