Методы объекта-шаблона
В результате успешной компиляции шаблона функцией 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']