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

如何修改正则表达式捕获方括号内由1、2组成的完整数字

问题原因

你原有正则的问题出在.*是贪婪匹配模式,会尽可能多匹配字符,因此在匹配到]#之前,会把方括号内除了最后一位数字2之外的字符都吞掉,最终导致DIGIT分组仅能捕获到2。

修改方案

可以直接精准匹配方括号边界,同时限定DIGIT分组的匹配规则,修改后的正则如下:

(?P<VOL>.*):.*\[(?P<DIGIT>[12]+)]#(?P<PIN>.*)$

规则说明

  • 新增\[精准匹配左方括号,阻断前面贪婪匹配吞掉方括号内的数字内容
  • 将DIGIT分组的匹配规则改为[12]+,严格限定仅匹配数字1和2,符合你要求的「方括号内的数字仅允许出现1或2」的规则
  • 右方括号直接正常匹配,确保只捕获方括号范围内的内容

匹配结果验证

针对你的测试字符串Continuity:pass_mV[12]#x_u_123,修改后的正则匹配结果如下:

  • VOL分组:Continuity
  • DIGIT分组:12
  • PIN分组:x_u_123

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:06:06