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

       

Примеры шаблонов


Владение регулярными выражениями может существенно ускорить построение алгоритмов для обработки данных. Лучше всего познакомиться с шаблонами на конкретных примерах:

r"\b\w+\b"

Соответствует слову из букв и знаков подчеркивания.

r"[+-]?\d+"

Соответствует целому числу. Возможно, со знаком.

r"\([+-]?\d+\)"

Число, стоящее в скобках. Скобки используются в самих регулярных выражениях, поэтому они экранируются "\".

r"[a-cA-C]{2}"

Соответствует строке из двух букв "a", "b" или "c". Например, "Ac", "CC", "bc".

r"aa|bb|cc|AA|BB|CC"

Строка из двух одинаковых букв.

r"([a-cA-C])\1"

Строка из двух одинаковых букв, но шаблон задан с использованием групп



r"aa|bb".

Соответствует "aa" или "bb"

r"a(a|b)b"

Соответствует "aab" или "abb"

r"^(?:\d{8}|\d{4}):\s*(.*)$"

Соответствует строке, которая начинается с набора из восьми или четырех цифр и двоеточия. Все, что идет после двоеточия и после следующих за ним пробелов, выделяется в группу с номером 1, тогда как набор цифр в группу не выделен.

r"(\w+)=.*\b\1\b"

Слова слева и справа от знака равенства присутствуют. Операнд "\1" соответствует группе с номером 1, выделенной с помощью скобок.

r"(?P<var>\w+)=.*\b(?P=var)\b"

То же самое, но теперь используется именованная группа var.

r"\bregular(?=\s+expression)".

Соответствует слову "regular" только в том случае, если за ним после пробелов следует "expression"

r"(?<=regular )expression"

Соответствует слову "expression", перед которым стоит "regular"и один пробел.

Следует заметить, что примеры со взглядом назад могут сильно влиять на производительность, поэтому их не стоит использовать без особой необходимости.



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