带逗号的数字的无限正则表达式,没有双逗号

时间:2014-02-14 13:43:47

标签: regex character comma

我的页面上有一个数字输入,其中useres可以插入长行数字。

以下是一些例子:

123.456,78 - OK
223.456, - OK
.323,45 - OK
.423, - OK
123..456, - FAIL
123.456,, - FAIL
..123 - FAIL
21654545.14654654465.165456544,6547545765 - OK
784574452145..4522457546573,324732773 - FAIL
354.45.45.64.5.465.465.4.654.32.4.24.24.857545.24544.53777554.45 - OK

在无限长行中运行的数字,我需要知道的是,不超过1“。”(点)或“,”(逗号)。

这是我到目前为止所尝试的:

^([.|,|\S][0-9]{1,}[.|,|\S]).*$

但它只关注第一组数字,我希望它能看出它们中的一些数据。

我使用此页面测试代码:phpliveregex.com/p/3LN

它不适用于PHP,而适用于.NET系统。但我需要的是RegEx而不是PHP / .NET脚本。

3 个答案:

答案 0 :(得分:1)

这个正则表达式应该有效:

^[.,]?\d+([.,]\d+)*[.,]?$

在线演示:http://regex101.com/r/fD9bE6

答案 1 :(得分:1)

^[.,]?(\d[.,]?)+$

应该有用。

答案 2 :(得分:0)

我会尝试:

^[.|,|\S]?([0-9]{1,}[.|,|\S]|[0-9])*$

通过这种方式,您可以选择“我是否以。或者开头”。另外,我不确定你为什么最后有.*。这将匹配第一组之后的任何内容。这样我们重复括号中的内容。 |在捕获括号中间只是为了确保在字符串的末尾,我们可以以数字或分隔符结束。