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

编写排除逗号分隔格式的下划线数字串校验正则表达式

正则调整方案

你原来的正则存在几个核心问题:

  • 缺少首尾锚定,会出现部分匹配的情况,只要字符串结尾不是逗号就会被误判为合法,比如1_2,3这类带逗号的串也会被匹配到前半段
  • 字符组[1-9+_]中误写了+,会把+符号识别为合法字符
  • 没有限制下划线的位置,会匹配到开头/结尾带下划线、连续下划线的非法格式
  • 语法存在缺失,少了闭合的右括号

符合要求的正则写法

根据你的需求,合法格式是仅由下划线分隔的数字串,分两种场景选择:

  1. 允许数字段以0开头(比如0_123_45合法)
^\d+(?:_\d+)*$
  1. 要求数字段必须以非0数字开头(和你原正则的[1-9]逻辑一致,比如0_123非法)
^[1-9]\d*(?:_[1-9]\d*)*$

如果要求必须至少存在一个下划线分隔符,把正则末尾的*改成+即可。

规则解释

  • ^和$分别匹配字符串的开头和结尾,确保整个字符串完全符合规则,不会出现部分匹配的问题
  • \d+ 匹配至少1位数字,非0开头的场景替换为[1-9]\d*即可
  • (?:_\d+)* 是非捕获组,匹配0次或多次「下划线+数字段」的组合,从语法上限制了下划线只能出现在两个数字段中间,避免开头/结尾下划线、连续下划线的非法情况

测试验证

  • 合法用例匹配:1、1_2_3、123_456_789均能正常匹配
  • 非法用例拦截:1_2_3,1_3、_1_2、1_2_、1__2均无法匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:36:02