Язык программирования Python.

Методы объекта–шаблона.

В результате успешной компиляции шаблона функцией re.compile() получается шаблон–объект (он именуется SRE_Pattern), который имеет несколько методов, некоторые из них будут рассмотрены. Как обычно, подробности и информация о дополнительных аргументах — в документации по Python.

Match(s).

Сопоставляет строку s с шаблоном, возвращая в случае удачного сопоставления объект с результатом сравнения (объект SRE_Match). В случае неудачи возвращает None. Сопоставление начинается от начала строки.

Search(s).

Аналогичен match(s), но ищет подходящую подстроку по всей строке s.

Split(s[, maxsplit=0]).

Разбивает строку на подстроки, разделенные подстроками, заданными шаблоном. Если в шаблоне выделены группы, они попадут в результирующий список, перемежаясь с подстроками между разделителями. Если указан maxsplit, будет произведено не более maxsplit разбиений.

Findall(s).

Ищет все неперекрывающиеся подстроки s, удовлетворяющие шаблону.

Finditer(s).

Возвращает итератор по объектам с результатами сравнения для всех неперекрывающихся подстрок, удовлетворяющих шаблону.

Sub(repl, s).

Заменяет в строке s все (или только count, если он задан) вхождения неперекрывающихся подстрок, удовлетворяющих шаблону, на строку, заданную с помощью repl. В качестве repl может выступать строка или функция. Возвращает строку с выполненными заменами. В первом случае строка repl подставляется не просто так, а интерпретируется с заменой вхождений "\номер" на группу с соответствующим номером и вхождений "\g<имя>" на группу с номером или именем имя. В случае, когда repl — функция, ей передается объект с результатом каждого успешного сопоставления, а из нее возвращается строка для замены.

Subn(repl, s).

Аналогичен sub(), но возвращает кортеж из строки с выполненными заменами и числа замен.

В следующем примере строка разбивается на подстроки по заданному шаблону:

>>> import re.

>>> delim_re = re.compile(r"[:,;]").

>>> text = "This,is;example".

>>> print delim_re.split(text).

['This', 'is', 'example'].

А теперь можно узнать, чем именно были разбиты строки:

>>> delim_re = re.compile(r"([:,;])").

>>> print delim_re.split(text).

['This', ',', 'is', ';', 'example'].