Как получить полное совпадение, игнорируя не-цифры в регулярном выражении? - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь получить число из строки, игнорируя все не-цифры, такие как запятые, символы и т. Д. У меня есть такое регулярное выражение:

(?:[\d]+)

Для "45,00%", получается следующее:

Match 1
Full match  0-2 45
Match 2
Full match  3-5 00

Но я хочу полное одиночное совпадение как 4500. Как я могу это сделать?

1 Ответ

0 голосов
/ 24 апреля 2019

Мы можем сначала попытаться использовать 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']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...