我试图从字符串中获取数字,而忽略所有非数字,例如逗号,符号等。我有这样的正则表达式:
(?:[\d]+)
对于“ 45,00%”,结果如下:
Match 1
Full match 0-2 45
Match 2
Full match 3-5 00
但是我希望完整匹配为4500。我该怎么做?
答案 0 :(得分:0)
我们可以先尝试使用re.findall
查找所有匹配的百分比字符串,然后对结果列表使用re.sub
除去小数点字符:
input = "Here is one value 45,00% and 12% is another"
matches = re.findall(r'\d+(?:,\d+)?%', input)
matches = [re.sub(r'[,%]', '', i) for i in matches]
print(matches)
['4500', '12']