Модуль re
Модуль re позволяет работать нам с регулярными выражениями.
Регулярные выражения(Regular expression) - ормальный язык поиска и осуществления манипуляций с подстроками в тексте, основанный на использовании метасимволов. Для поиска используется строка-образец ("шаблон", "маска"), состоящая из символов и метасимволов и задающая правило поиска. Для манипуляций с текстом дополнительно задаётся строка замены, которая также может содержать в себе специальные символы.
Если попроще, то регулярные выражения позволяют нам находить какие-то последовательности символов тексте, а для того чтобы описать эту последовательности используется специальный синтаксис описания маски.
Для того чтобы детальнее ознакомиться с синтаксисом шаблонов, советую ознакомиться со следующим видео:
Шпаргалка
Особые для python мета-символы
| Символ | Описание |
|---|---|
| ?P<name> | Именованная группа |
Функции модуля
re.compile(pattern: str, flags=0) -> Pattern
Позволяет нам скомпилировать pattern в объект регулярного выражения, делается это для производительности и удобства.
re.search(pattern, string, flags=0) -> None | Match
Найти вхождение паттерна в строке, в любом месте. Метод возвращает объект совпадения Match
re.match(pattern, string, flags=0) -> None | Match
Найти вхождение паттерна в строке, в любом месте. Метод возвращает объект совпадения Match
re.fullmatch(pattern, string, flags=0) -> None | Match
Вернет объект совпадения если только pattern полностью совпадает со строкой
re.split(pattern, string, maxsplit=0, flags=0) -> List[str]
Разбить строку на подстроки по какому-то паттерну.
re.findall(pattern, string, flags=0) -> List[str]
Найти все вхождения паттерна в строке. Обратите внимание, что возвращается не список объектов класса Match a список строк.
re.finditer(pattern, string, flags=0) -> Iterator[Match]
Возвращает итератор по Match объектам.
re.sub(pattern, repl, string, count=0, flags=0) -> str
Удобный метод позволяющий сделать замену в строке.
class Pattern
Методы класса Pattern очень похожи на методы модуля re, за исключением того, что этим методам не надо передавать паттерн(шаблон).
class Match
Это объект совпадения из которого мы можем получить всю дополнительную информацию о нем.
Match.group([group1, ...])
Получение группы по ее индексу либо имени.
Match.groups(default=None)
Получение всех подгрупп в виде tuple. Значит, что вернутся все подгруппы, но основная группа, с индексом 0 не вернется
Match.groupdict(default=None)
Получить все именованные подгруппы в виде словаря(dict).
Match.start(group) и Match.end(group)
Получить позицию начала и конца группы в совпадении.
Если группа не найдена - выскочит ошибка IndexError.
Если группа объявлена, но не имеет совпадений в тексте - значением ее позиции будет -1.
Match.span(group)
Объединяет в себе методы start и end и возвращает значения в виде tuple (start_index, end_index)