正则表达式仅用于validation数字和点

我想要一个只接受数字和点的java正则表达式。

例如,

1.1.1 ----valid 1.1 ----valid 1.1.1.1---valid 1. ----not valid 

点不应位于起始位置或结束位置。

我想这就是你想要的:

 ^\d+(\.\d+)*$ 

说明:它接受以点分隔的数字; 它以数字开头和结尾; 一个数字可以有多个数字; 也可以接受一个没有圆点的数字。

没有多个数字的变体:

 ^\d(\.\d)*$ 

需要至少一个点的变体:

 ^\d+(\.\d+)+$ ^\d(\.\d)+$ 

不要忘记在Java中你必须转义\符号,所以代码将如下所示:

 Pattern NUMBERS_WITH_DOTS = Pattern.compile("^\\d+(\\.\\d+)*$"); 

所以你想要一个想要数字和句号的正则表达式,但是以数字开头和结尾?

 "[0-9][0-9.]*[0-9]" 

但这不会像1那样匹配。 它没有任何句号,但以数字开头和结尾。

 "^\\d(\\.\\d)*$" 1 ----valid (if it must be not valid, replace `*` => `+` ) 1.1.1 ----valid 1.1 ----valid 1.1.1.1---valid 1. ----not valid 11.1.1 ---not valid (if it must be valid, add `+` after each `d`) 
    

RegEx to allow digits and dot

Number:

我想这就是你想要的:

 Pattern.compile("(([0-9](\\.[0-9]*))?){1,13}(\\.[0-9]*)?(\\.[0-9]*)?(\\.[0-9]*)?", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.DOTALL | Pattern.MULTILINE); 

说明:它接受以点分隔的数字; 它以数字开头和结尾; 一个数字可以有多个数字; 不接受一个没有圆点的数字。

像这样的输出 –

  • 1.1
  • 1.12
  • 1.1.5
  • 1.15.1.4