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

如何编写可匹配至少2位数字及%、*特殊字符的正则表达式?

你之前写的正则^([*%]*[0-9]{2,}[*%\d]*)$的缺陷是要求两个数字必须连续,无法匹配*1*7这类数字分散的合法场景。

符合要求的正则如下:

^(?=(?:\D*\d){2})[0-9*%]+$

规则说明

  • 正向预查(?=(?:\D*\d){2}):保证字符串中至少存在2个数字,对数字的位置没有限制
  • 字符集[0-9*%]+:限制整个字符串只能出现数字、*、%三类字符,不允许其他字符存在
  • 首尾的^和$限制匹配整个字符串,避免部分匹配的问题

验证结果

合法示例全部匹配成功

  • 12
  • %23
  • 78%
  • 12***3
  • *1*7

非法示例全部匹配失败

  • 8(仅1个数字)
  • *7(仅1个数字)
  • 6%(仅1个数字)
  • AB(包含未允许的字母字符)
  • %4*(仅1个数字)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:36:05