【问题标题】:Regular expression, not outputting values correctly正则表达式,没有正确输出值
【发布时间】:2017-03-26 10:18:23
【问题描述】:
num = re.findall (r'[-+]?\d*\.*\d+' , str (table))

大家好,我有这个正则表达式,它正在打印我想要的值。但是,它们是分开的。

例如:

['7', '336.82', '-3.89', '-0.05', '7', '351.60', '7', '322.86', '7', '340.71'] 

就是打印出来的

但我希望它打印出来:

['7,336.82', '-3.89', '-0.05', '7,351.60', '7,322.86', '7,340.71']

有人可以帮忙吗?

提前致谢。

【问题讨论】:

    标签: regex list python-3.x


    【解决方案1】:

    您似乎想要捕获用逗号分隔的数字。您可以使用:

    r'[-+]?(?:\d+[\d,]*)?\.?\d+'
    

    RegEx Demo

    【讨论】:

      【解决方案2】:

      如果必须用逗号后的 3 位数字验证数字:

      [-+]?\d{1,3}(\,\d{3})*(\.\d+)?
      

      如果输入为 1,000,00.0,则表示:1,00000.0 在此答案中。

      演示:https://regex101.com/r/8nYbaQ/2

      如果01,123 应该被拒绝:(因为从 0 位开始)

      (\+?[1-9]|\-\d)\d{0,2}(\,\d{3})*(\.\d+)?
      

      演示:https://regex101.com/r/8nYbaQ/3

      【讨论】:

      • 嗨,很好的答案...非常感谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-17
      相关资源
      最近更新 更多