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

求可识别带前导零的正偶数(排除全零)的正则表达式

匹配带前导零的正偶数(排除全零)的正则表达式

正确正则表达式

^(?!0+$)0*\d*[02468]$

问题分析

你之前尝试的第一个正则:

^([0-9]*[1-9][0-9]*)*[02468]$

无法识别002这类带前导零的数,原因是([0-9]*[1-9][0-9]*)*要求字符串中必须包含至少一个非零数字,但前导零之后直接跟偶数的情况(比如002),这部分无法匹配到非零数字,导致整体匹配失败。

修改后的第二个正则:

^([0-9]*[1-9][0-9]*)*[02468]*[02468]$

虽然能匹配002,但[02468]*可以匹配任意数量的偶数(包括全零),再加上结尾的[02468],就会允许全零字符串(如000)通过,产生误匹配。

正则逻辑拆解

  • ^(?!0+$):负前瞻断言,直接排除全由零组成的字符串(比如0、000)
  • 0*:匹配任意数量的前导零(可以是0个,即没有前导零的情况)
  • \d*:匹配任意数量的数字,兼容中间没有数字的情况(比如单个偶数2)
  • [02468]$:强制字符串结尾为偶数数字,确保是偶数

验证示例

  • 匹配成功:2、001234、00123400、002、20、16
  • 匹配失败:000、1、003、5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:20:41