正则表达式仅匹配奇数或偶数

Jam*_*mes 26 regex

我有一个用户可以输入数据库的文本条目列表,我需要使用正则表达式验证这些输入,因为其中一些是复杂的.其中一个字段必须有数字间隙(即10,12,14,16 ......).我的问题是,是否有一个Regex结构允许我只匹配偶数或奇数运行?我知道我可以把这个值拉出来并对它进行除法检查,但是如果可能的话,我希望有一个纯正的Regex解决方案.

[编辑]

最后我用这个解决方案是JaredPar的的适应,因为除了需要只是奇怪的或埃文斯我也需要通过一个范围(10-40之间,即,所有偶数)来约束.下面是Regex完成的.

^ [123] [02468] $

Jar*_*Par 63

奇数

"^\d*[13579]$"
Run Code Online (Sandbox Code Playgroud)

偶数

"^\d*[02468]$"
Run Code Online (Sandbox Code Playgroud)

使用a和潜在的空白分隔符运行赔率

"$\s*(\d*[13579]\s*,\s*)*\d*[13579]$"
Run Code Online (Sandbox Code Playgroud)

使用a和潜在的空白分隔符运行Evens

"$\s*(\d*[02468]\s*,\s*)*\d*[02468]$"
Run Code Online (Sandbox Code Playgroud)


Var*_*han 5

如果你考虑到只能查看最后一个数字,即需要偶数或奇数也可以测试偶数或奇数,正则数据集实际上并不难设计.所以奇数运行的正则表达式可以是:

"^(\s*\d*[13579]\s*,)*(\s*\d*[13579]\s*)$"
Run Code Online (Sandbox Code Playgroud)

将[135]]替换为[02468]以获得偶数...