Как я могу найти все совпадения с регулярным выражением в Python? - PullRequest
258 голосов
/ 15 января 2011

В программе, которую я пишу, у меня есть Python, использующий функцию re.search(), чтобы найти совпадения в блоке текста и распечатать результаты.Тем не менее, программа завершает работу, как только находит первое совпадение в блоке текста.

Как сделать это несколько раз, когда программа не останавливается, пока ВСЕ совпадения не найдены?Есть ли отдельная функция для этого?

1 Ответ

463 голосов
/ 15 января 2011

Вместо этого используйте re.findall или re.finditer.

re.findall(pattern, string) возвращает список подходящих строк.

re.finditer(pattern, string)возвращает итератор для MatchObject объектов.

Пример:

re.findall( r'all (.*?) are', 'all cats are smarter than dogs, all dogs are dumber than cats')
# Output: ['cats', 'dogs']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...