Жадное сопоставление. Поведение регулярных выражений по умолчанию должно быть жадным. Это означает, что он пытается извлечь как можно больше, пока не будет соответствовать шаблону, даже если меньшая часть была бы синтаксически достаточной.
Пример:
import re
text = "<body>Regex Greedy Matching Example </body>"
re.findall('<.*>', text)
#> ['<body>Regex Greedy Matching Example </body>']
Вместо сопоставления до первого вхождения «>» он извлекал всю строку. Это стандартное жадное поведение или поведение regex «возьми все».
Ленивое сопоставление , с другой стороны, «занимает как можно меньше». Это может быть достигнуто путем добавления ?
в конце шаблона.
Пример:
re.findall('<.*?>', text)
#> ['<body>', '</body>']
Если вы хотите получить только первое совпадение, используйте вместо этого метод поиска.
re.search('<.*?>', text).group()
#> '<body>'
Источник: Примеры Python Regex