Используя регулярное выражение для решения проблемы в Python Challenge , я столкнулся с поведением, которое меня смутило.
из здесь :
(...) Соответствует любому регулярному выражению, заключенному в скобки.
и
'+' Заставляет результирующий RE совпадать с 1 или более повторениями предыдущего RE.
Так что это имеет смысл:
>>>import re
>>>re.findall(r"(\d+)", "1111112")
['1111112']
Но это не так:
>>> re.findall(r"(\d)+", "1111112")
['2']
Я понимаю, что findall возвращает только группы, когда группы присутствуют в регулярном выражении, но почему возвращается только '2'? Что происходит со всеми 1 в матче?