我有以下正则表达式:[\-+]?[0-9]*[02468]$
它匹配正数或负数偶数,但我也希望它不匹配'0'。我怎么能做到这一点?我找不到一种方法来翻译“只有匹配0作为最后的数字,如果有数字在它之前”到正则表达式语言。
感谢。
答案 0 :(得分:2)
也许这个?
[\-+]?([0-9]*[1-9][0-9]*[02468]|[2468])$
修改强> 这允许在两个交替上都有前导零。
[-+]?0*([1-9][0-9]*[02468]|[2468])$
答案 1 :(得分:0)
我想出了以下内容,这似乎有效:[-+]?([1-9][0-9]*[24680]|[2468])$
它似乎避免前导零并且不使用回顾。如果我错了,请纠正我。
答案 2 :(得分:0)
这将消除以0开头的数字:
[\-+]?[^0][0-9]*[02468]$
因此它会排除0
。
缺点是它不适用于012
。
只要您的号码没有前导零,就可以成为解决方案。
我不明白这里需要正则表达式(你从不指定上下文)。
最好(如果可能的话)检查数字是否为非零甚至:
( num != 0 && num % 2 == 0 )