正则表达式检查数字是否均匀

时间:2010-09-08 08:53:34

标签: java regex

我们可以使用正则表达式来检测数字是否均匀吗?

我想知道我们是否可以使用正则表达式而不是通常的%或位操作。

感谢您的回复:)

6 个答案:

答案 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