我很难找到包含逗号分隔符的十进制数的正确正则表达式。正则表达式用逗号分隔的十进制数
我没有找到关于这个问题一般,但没有一个答案时,我测试了他们真正工作了几个其他的问题
我迄今为止最好的是:如此
[0-9]{1,3}(,([0-9]{3}))*(.[0-9]+)?
2存在的主要问题远:
1)它记录的数字之间有空格“3001 1”,而不是将它们拆分为2个匹配“3001”“1” - 我真的不知道我在哪里允许正则表达式中的空间。
2)我有正则表达式的开始\结尾的一般问题。
正则表达式应该匹配:
3,001
1
32,012,111.2131
但不是:
32,012,11.2131
1132,012,111.2131
32,0112,111.2131
32131
另外我想它匹配:
1.(without any number after it)
1,(without any number after it)
as 1
(在一个逗号或点数量的末尾应该被忽略)。
非常感谢! 。
对于初学者来说,除非你的语言的正则表达式库已经这样做,否则你应该在两端都固定你的模式。否则,任何至少有一个数字的字符串都会匹配。 – cHao
您允许使用与任何字符匹配的句点('''.''')的正则表达式中的空格。退出期间('''\ .''')仅与期间匹配。 – creemama
我不认为第二个和第三个问题都是问题。从我所知道的情况来看,他们不会匹配他们不应该做的事情。 –