我有一个用户可以输入数据库的文本条目列表,我需要使用正则表达式验证这些输入,因为其中一些是复杂的.其中一个字段必须有数字间隙(即10,12,14,16 ......).我的问题是,是否有一个Regex结构允许我只匹配偶数或奇数运行?我知道我可以把这个值拉出来并对它进行除法检查,但是如果可能的话,我希望有一个纯正的Regex解决方案.
[编辑]
最后我用这个解决方案是JaredPar的的适应,因为除了需要只是奇怪的或埃文斯我也需要通过一个范围(10-40之间,即,所有偶数)来约束.下面是Regex完成的.
^ [123] [02468] $
奇数
"^\d*[13579]$"
偶数
"^\d*[02468]$"
使用a和潜在的空白分隔符运行赔率
"$\s*(\d*[13579]\s*,\s*)*\d*[13579]$"
使用a和潜在的空白分隔符运行Evens
"$\s*(\d*[02468]\s*,\s*)*\d*[02468]$"
如果你考虑到只能查看最后一个数字,即需要偶数或奇数也可以测试偶数或奇数,正则数据集实际上并不难设计.所以奇数运行的正则表达式可以是:
"^(\s*\d*[13579]\s*,)*(\s*\d*[13579]\s*)$"
将[135]]替换为[02468]以获得偶数...