Мы можем сначала попытаться использовать 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']