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

如何编写正则表达式检测字符串中仅包含1个井号(#)?

符合需求的正则表达式

直接使用如下正则即可:

^[^#]*#[^#]*$

各部分含义说明

  • ^ 匹配字符串的起始位置,确保我们从字符串开头开始校验
  • [^#]* 匹配0个或任意多个不含#的字符,覆盖#之前的所有内容,支持#出现在字符串开头的场景
  • # 匹配唯一的特殊字符井号
  • [^#]* 匹配0个或任意多个不含#的字符,覆盖#之后的所有内容,支持#出现在字符串结尾的场景
  • $ 匹配字符串的结束位置,确保校验覆盖整个字符串

原有写法出错的原因

你之前写的#{1}仅能匹配字符串中任意位置的单个#,不会限制整个字符串内#的总数量,只要字符串存在至少一个#就会返回匹配成功,自然会命中包含多个#的字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:27:03