Сообщить об ошибке.

Функции уровня модуля re в Python

Функции регулярных выражений модуля re

В функциях уровня модуля не нужно создавать/компилировать объект шаблона и вызывать методы скомпилированного объекта. Модуль re определяет функции верхнего уровня, такие как match(), search(), findall(), sub() и так далее. Функции уровня модуля re принимают одни и те же аргументы, что и соответствующий метод объекта re.compile(), только шаблон регулярного выражения добавляется в качестве первого аргумента. Функции возвращают либо None или экземпляр объекта Match.

>>> print(re.match(r'From\s+', 'Fromage amk'))
# None
>>> re.match(r'From\s+', 'From amk Thu May 14 19:12:10 1998')  
# <_sre.SRE_Match object; span=(0, 5), match='From '>

Функции модуля re создают объект шаблона и вызывают соответствующий метод для него. Они также хранят скомпилированный объект в кеше, поэтому будущие вызовы с использованием одного и того же регулярного выражения не будут анализировать его снова и снова.

Если вы обращаетесь к регулярному выражению в цикле, его предварительная компиляция сохранит несколько вызовов функций. Вне циклов, нет большой разницы что лучше использовать, благодаря внутреннему кэшу.