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

如何构造匹配非空且以偶数个0结尾字符串的正则表达式?

匹配非空且以连续偶数个0结尾的字符串的正则方案

你的原表达式(1* 0* 1*)*(00)+的核心问题是:前面的分组(1*0*1*)*可以匹配到单个0(奇数个),然后后面的(00)+匹配剩余的两个0,最终把总结尾的奇数个0拆成了“奇数+偶数”的组合,导致像000、100100000这类不符合要求的字符串被错误匹配。

正确的正则表达式

^(?:[10]*1)?(00)+$

拆解说明

  • (?:[10]*1)?:可选部分,用于匹配字符串中最后一个1及其前面的所有字符。[10]*匹配任意数量的0或1,1确保这部分以1结尾;?表示这部分可以不存在(比如全是0的情况)。
  • (00)+:匹配至少一组连续的两个0,确保结尾是连续的偶数个0,同时保证整个字符串非空。

验证示例

  • 匹配成功:10110010000、00、100、1110000
  • 匹配失败:000、100100000、10、1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:05:22