我想写一个关于匹配整数和实数的正则表达式(它们用点分隔,例如:123.123)在一个字符串中,用逗号分隔“,”
我写了这个,但不能用逗号分隔它们:^[-+]?[0-9]*\.?[0-9]+?$
234匹配
345,2.78匹配
5.443,214.0匹配
4.5,12,0.8匹配
1,1.0,3,4.8,0.0,0,7.001,8.0匹配
2,5不匹配
3 4,5无匹配
4.0,没有匹配
6F无匹配
04没有比赛
5.00无匹配
4-1无匹配
11,4.5无匹配
4.不匹配
.9没有匹配
1.22.34不匹配
答案 0 :(得分:0)
(?<=,|^)[-+]?[0-9]+\.?[0-9]*(?=,|$)
应该有用。
正则表达式中的 ^
和$
表示:字符串的开头和结尾。因此,只有当您的字符串只包含一个数字时才会得到匹配。
(?<=,|^)
和(?=,|$)
是positiv lookbehind和positiv lookahead,意思是:只逗号之间或字符串的开头或结尾处完全匹配。
答案 1 :(得分:0)
^(?:[1-9]\d*|0)(?:\.\d+(?<!0)|\.0)?(?:\,(?:[1-9]\d*|0)(?:\.\d+(?<!0)|\.0)?)*$