Regex 使用正则表达式验证数字

Regex 使用正则表达式验证数字,regex,Regex,我需要使用正则表达式验证输入类型是否是具有某些规范的数字。数字可以有任意数量的逗号(,),但不能有点(.),但逗号和点不能并排,例如 12,34,56,7.89--正确--1 12.34.56——错了——2 12345--正确----3 123,45——正确——4 123.45--正确--5 123,45--错了--6 12345678--正确--7 我用的表达是 (((\d+[.]?\d*)|(\d*[.]?\d+)[,]?)+\d+) 我无法解决测试用例2和6。任何帮助都可以接受,谢谢您试试

我需要使用正则表达式验证输入类型是否是具有某些规范的数字。数字可以有任意数量的逗号(,),但不能有点(.),但逗号和点不能并排,例如

12,34,56,7.89--正确--1

12.34.56——错了——2

12345--正确----3

123,45——正确——4

123.45--正确--5

123,45--错了--6

12345678--正确--7

我用的表达是

(((\d+[.]?\d*)|(\d*[.]?\d+)[,]?)+\d+)

我无法解决测试用例2和6。任何帮助都可以接受,谢谢您

试试这个正则表达式:

^\d+(?:,\d+)*(?:\.\d+)?$

说明:

  • ^
    -断言行的开头
  • \d+
    -匹配1+个数字
  • (?:,\d+)*
    -匹配0+次出现的
    ,后跟1+位
  • (?:\。\d+)
    -匹配一个
    ,后跟1+位<代码>?最后使此子模式成为可选模式
  • $
    -断言行的结尾