Язык программирования 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']



Содержание раздела