1

大家好,我想编写一个正则表达式来检查一个值是否只有数字但 0 不在第一位。例如值 10 是正确的,但值 01 是错误的。

到目前为止我有这个mystr.matches("[123456789]+")

4

5 回答 5

3

试试这个:

mystr.matches("^[1-9]\\d*$")
于 2013-02-24T16:56:49.890 回答
2

我认为应该做的工作:"([1-9]+[0-9]*)"

干杯!

于 2013-02-24T16:53:38.767 回答
2

建议的解决方案:

mystr.matches("[1-9]\\d*")

解释:

  • [1-9]首先检查第一个数字是否在 1 到 9 之间。
  • \\d*查找任何数字(从 0 到 9)。
于 2013-02-24T16:53:45.543 回答
2

这里的所有答案都将验证像 1, 2, 3, ..., 10, 11, ... 这样的数字,但如果您还想包括 simple 0but not 0001等等,您可以使用

mystr.matches("0|[1-9][0-9]*")
于 2013-02-24T17:19:25.060 回答
1

你也可以使用这个正则表达式

^(?!0)\d+$ 
于 2013-02-24T17:14:37.883 回答