2016-10-22 36 views
0

我经历了很多线程,并且给出的问题有很多答案。但有些时候我无法弄清楚我做错了什么。 我的要求是在小数点后不匹配多个数字 并且还应丢弃非十进制数。 如正则表达式限制2位小数

有效

1.1 
12.1 
1234.1 
123456.0 
.1 

无效

.12 
123 
123.12 

我写的是什么^([0-9]?\.?)+\.?[0-9]{1}$

当我尝试匹配11.123123 II获得匹配。我究竟做错了什么?

回答

1

此正则表达式适用于你的使用情况:^\d*\.\d$
那里从字符串的开始所有的数字(*运营费的零个或多个)^\d*比赛,然后逃逸.\.最后\d$只匹配,如果有一个字符在字符串结束之前

+0

在这个正则表达式.1失败,我的意思是没有数字前十进制和小数应该通过。 – pankaj

+0

@sameer纠正,我错误地使用'+'而不是'*'。现在它匹配有效区块内的所有值,并且不匹配所有其他 – Tinwor

+0

作品像魅力 – pankaj

0

这一个应该做的:

^[0-9]+(\.[0-9])?$