Модуль 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)