正则表达式,而不是正确输出值

时间:2017-03-26 10:18:23

标签: regex list python-3.x

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']

请有人帮忙吗?

提前致谢。

2 个答案:

答案 0 :(得分:3)

您希望捕获以逗号分隔的数字。您可以使用:

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

RegEx Demo

答案 1 :(得分:0)

如果需要逗号后必须用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