我们可以使用正则表达式来检测数字是否均匀吗?
我想知道我们是否可以使用正则表达式而不是通常的%
或位操作。
感谢您的回复:)
答案 0 :(得分:54)
您可以尝试:
^-?\d*[02468]$
说明:
^
:开始锚定。-?
:可选的否定号。\d*
:零个或多个数字。[02468]
:Char类匹配0
或2或4或6或8 $
:结束锚答案 1 :(得分:21)
由于已经给出了正确的答案,我认为正则表达式不会是我的第一选择。
long
范围,请使用%
BigInteger.remainder(..)
,但也许可以检查上一个char
是否代表偶数位会更有效。答案 2 :(得分:3)
如果是字符串,只需检查endsWith
(0) || endsWith(2) || ..
是否返回true。如果是数字,那很简单。
答案 3 :(得分:1)
当然,您只需检查最后一个号码是否为0/2/4/6/8
答案 4 :(得分:1)
试试这个,我不确定它是否与java中的语法相同:
^\d*(2|4|6|8|0)$
答案 5 :(得分:0)
永远不要将正则表达式用于可以轻松完成的工作。
我遇到了这个微软博客,上面写着:http://blogs.msdn.com/b/bclteam/archive/2005/02/21/377575.aspx