найти все совпадения в строке с помощью регулярных выражений - PullRequest
0 голосов
/ 30 сентября 2019

Я использовал re.findall (), чтобы получить все совпадения в моей строке. У меня есть строка «aaadaa» и я хочу найти в ней «aa». Я хочу, чтобы он вернул мне три экземпляра «аа». т.е. вывод должен быть ['aa', 'aa', 'aa']. Однако я получаю только ['аа', 'аа']. Как получить желаемый результат?

import re
s= "aaadaa"
regex = 'aa'
matches = re.findall(regex, s)
print(matches)

1 Ответ

0 голосов
/ 30 сентября 2019

Вы можете попробовать (?=(aa))

Хитрость в том, что вы используете положительный прогноз, который не использует строку, таким образом, двигатель начинает совпадать со следующей позиции в строке, а не после последнего сопоставленного текста.

Вы получите 3 матча, и у каждого будет aa в первой группе captuirng.

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...