正则表达式匹配数字与逗号和点

时间:2017-04-14 14:14:43

标签: python regex

我想使用re模块匹配整数和浮点数。因此,如果有人键入以下输入类型之一,则应验证它是否为数字:

- 1000
- 1.000
- 1,000
- ($1,000.98)
- -1.000
- 1.0
- $1,0000

现在我正在使用以下内容:

"^[-+]?[0-9]+$"

感谢任何帮助

2 个答案:

答案 0 :(得分:2)

对于给定的输入,这个正则表达式应该起作用:

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

RegEx Demo

<强>解体:

  • ^ - 开始
  • (?: - 启动非捕获组
    • [+-] - 匹配+-
    • | - 或
    • \( - 匹配( )? - 结束非捕获组(可选)
  • \$? - 匹配$(可选)
  • \d+ - 匹配1位或更多位数
  • (?: - 启动非捕获组
    • , - 匹配逗号
    • \d+ - 匹配1位或更多位数
  • )* - 结束非捕获组(零次或多次发生)
  • (?: - 启动非捕获组
    • \. - 匹配DOT
    • \d+ - 匹配1位或更多位数
  • )? - 结束非捕获组(可选)
  • \)? - 最后匹配文字)(可选)
  • $ - 结束

答案 1 :(得分:-1)

嗨我在regexr.com上搞砸了,我得到了以下内容以匹配所有7个值

[0-9]?[-+.,]?[0-9]+[.]?[0-9]+

希望这会有所帮助,这里是proof