2017-10-05 89 views
-1

我想获得一个REGEX,它只允许从1-9开始的数字,只有4个字符,并且应该只能在小数点后有一个零。正则表达式 - 仅允许数字的模式

这是我到目前为止写的,但它每次都失败。

^[1-9]\\d{4,4}(\\.\\d{1,1})?%?$ 

我在阅读excel工作表时将它用作java中的验证。

+0

为例如:2016.0 - 转至 –

+0

我试图此以及“^([1-9] \\ d {4 }。\\ d {1})* $“ –

+0

这里有一个有用的链接 - https://stackoverflow.com/tags/regex/info – Sagar

回答

0

了给定的要求,你可以使用这个表达式:

final String regex = "^[1-9]\\d{3}(?:\\.0)?$"; 

正则表达式破碎

  • ^:启动
  • [1-9]:在启动
  • \\d{3}匹配一个数字1-9:匹配任何3位数
  • (?:\\.0)?:在端
  • $匹配可选.0:结束
+0

只是要知道,你为什么选择做'[1-9] \\ d {3}'而不是'\\ d {4}'?有区别吗? – Asew

+1

因为'\\ d {4}'在开始时也会允许'0',但是[1-9] \\ d {3}'不会。 – anubhava

+0

啊对,没看到0不是起始号码 – Asew