Регулярные выражения


Регулярные выражения (иногда сокращенные до regexp, regex или re) - это инструмент для сопоставления шаблонов в тексте. В Python у нас есть модуль re. Приложения для регулярных выражений широко распространены, но они довольно сложны, поэтому при рассмотрении использования регулярного выражения для определенной задачи подумайте об альтернативах и прибегайте к регулярным выражениям в крайнем случае.

Пример регулярного выражения: r"^(From|To|Cc).*?python-list@python.org"Теперь для объяснения: курсор ^соответствует тексту в начале строки. В следующей группе часть с (From|To|Cc)означает, что строка должна начинаться с одного из слов, разделенных вертикальной чертой |. Это называется оператором ИЛИ, и регулярное выражение будет соответствовать, если строка начинается с любого из слов в группе. В .*?средства для ипа-алчно соответствуют любому количеству символов, кроме символа новой строки \nсимвола. Нежадная часть означает как можно меньше повторений. Этот .символ означает любой символ, не являющийся символом новой строки, *означает повторение 0 или более раз, а ?символ делает его не жадным.

Таким образом, это регулярное выражение будет соответствовать следующим строкам: From: python-list@python.org To: !asp]<,. python-list@python.org

Полный справочник по синтаксису re доступен в документации python .

В качестве примера "правильного" регулярного выражения для сопоставления адресов электронной почты (как в упражнении) см. Это