我需要设置一个匹配的正则表达式,如下所示:
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})?$