正则表达式表示无符号数字(浮点数和整数)



我需要设置一个匹配的正则表达式,如下所示:

5
6.4
1.22

该数字必须是无符号、中间或浮动,最多 2 个十进制数字。我有麻烦了,怎么可能?

是的,这是可能的

(?:d*.)?d+

这与您的问题更相关

^d*(.d{1,2})?$

匹配: 1, 1.2, 1.23, .45 但不是 .678 或 9.101

试试这个:

"^d+.?d*$"

^ = 开始$ = 结束\d = 数字.= 点?= 可选的最后一个令牌+ = 一个或多个* = 零或更多

d+(.d{1,2})?

它允许你所有的情况,没有别的。

  • ?之后的事情使它们成为可选的
  • d匹配任何数字
  • +之后意味着需要有一个或多个
  • .匹配所有字符,因此此处对其进行转义以匹配文字点

我在这里使用了括号,使以点开头的整个小数部分可选。大括号中的数字表示允许使用前一个令牌的计数,因此我们在此处允许一位或两位数。

+很重要,因此没有空字符串匹配。

如果您需要这是字符串中的唯一内容,请添加^并像这样$

^d+(.d{1,2})?$

最新更新