java - Java 中用于正整数的正则表达式(不包括以零开头的整数)

标签 java regex

我目前使用“(\d){1,9}”,但它无法使诸如“0134”之类的数字无效。该表达式必须只验证正整数的数字。谢谢。

最佳答案

现在您使用表达式 [0-9]{1,9},因此这显然允许数字 0134。当您想要要求第一个字符不是零时,您必须使用 [1-9][0-9]{0,8}

顺便说一句:0134 一个正整数。它是一个整数,而且是正数。 ;)

编辑:

为防止整数溢出,您可以使用此模式:

  • [1-9][0-9]{0,8}
  • [1-1][0-9]{9}
  • [2-2][0-1][0-9]{8}
  • [2-2][1-1][0-3][0-9]{7}
  • [2-2][1-1][4-4][0-6][0-9]{6}

我想你明白了。然后将这些表达式与 | 结合起来,就完成了。

或者,查看 Integer.valueOf(String) 方法,了解它如何解析数字并检查溢出。复制该代码并更改带有 NumberFormatException 的部分。

关于java - Java 中用于正整数的正则表达式(不包括以零开头的整数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5998247/

相关文章:

Java 递增/递减运算符 - 它们的行为方式是什么,功能是什么?

javascript - 仅用 RegEx 替换字符串中的外部标记

php - 使用 preg_match 查找所有 PHP 变量

javascript - 如何检查值是否采用首选格式

javascript - jQuery 用 URL 替换字符串

java - 使用 ProGuard 混淆时暴露内部类

java - 使用jsoup从HTML网页解析PHP数据

java - 在 ubuntu14.04 上安装任何依赖于 JRE 的文件时出错

java - 使用 Google Play 服务的 AndEngine 广告

php - 用于解析 float 、小数、 double 的 MySQL 列类型的正则表达式