для строк. Например, \b для строки означает «возврат на шаг», но в мини-языке регулярных выражений эта последовательность означает начало слова. Избегайте случайного применения управляющих последовательностей, используя
неформатированные строки Python, когда определяете строку регулярного выражения. Всегда размещайте символ r перед строкой шаблона регулярного выражения, и управляющие последовательности Python будут отключены, как показано здесь:
>>>> re.findall(r'\bfish', source)
>['fish']
Шаблоны: указываем способ вывода совпадения
При использовании функций match() или search() все совпадения можно получить из объекта результата m, вызвав функцию m.group(). Если вы заключите шаблон в круглые скобки, совпадения будут сохранены в отдельную группу и кортеж, состоящий из них, окажется доступен благодаря вызову m.groups(), как показано здесь:
>>>> m = re.search(r'(. dish\b).*(\bfish)', source)
>>>> m.group()
>'a dish of fish'
>>>> m.groups()
>('a dish', 'fish')
Если вы используете этот шаблон (?P< name > expr), он совпадет с выражением expr, сохраняя совпадение в группе name:
>>>> m = re.search(r'(?P. dish\b).*(?P\bfish)', source)
>>>> m.group()
>'a dish of fish'
>>>> m.groups()
>('a dish', 'fish')
>>>> m.group('DISH')
>'a dish'
>>>> m.group('FISH')
>'fish'