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

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

Они являются важной темой для высокооптимизированных программ. Такие как длина, проверка подстрок, числовая частота и многое другое.

Мы будем использовать его через модуль re.

Питон.org:

Используя этот небольшой язык, вы указываете правила для набора возможных строк, которые вы хотите сопоставить; этот набор может содержать английские предложения, или адреса электронной почты, или команды TeX, или что угодно. Затем вы можете задать такие вопросы, как «Соответствует ли эта строка шаблону?» или «Есть ли где-нибудь в этой строке совпадение с шаблоном?».

Соответствующие символы

Регулярные выражения используются для выполнения операций со строками, и их наиболее распространенной задачей является манипулирование символами. Большинство символов похожи сами на себя, например abcdefg.

Однако некоторые буквы сами с собой напрямую не совпадают, поскольку созданы для описания каких-то конкретных обстоятельств (их мы рассмотрим позже). Полный список метасимволов выглядит следующим образом: . ^ $ * + ? { } [ ] \ | ( )

[ и ]

[и]: используются для предоставления набора символов для сопоставления. Эти примеры одинаковы независимо от того, перечислены ли эти символы отдельно (например, [abc]) или в группах (например, [a-c]).
[a-z]: разрешены только строчные буквы.
[A-Z]: разрешены только прописные буквы.
Метасимволы (за исключением ) не активны вне классов. Например, [abc$] будет соответствовать любому из символов a, a, b, c или $ (обычно это метасимвол, но он похож на обычный символ).

\

за отдельными символами может следовать обратная косая черта, чтобы определить разные ситуации. Если вы хотите использовать обратную косую черту как обычный символ, используйте\\.

\d: соответствует любой десятичной цифре. Эквивалентно [0-9]

\D: соответствует любой недесятичной цифре. Эквивалентно [^0-9]

\s: соответствует любому пробельному символу. Эквивалентно [ \t\n\r\f\v]

\S: соответствует любому непробельному символу. Эквивалентно [^ \t\n\r\f\v]

\w: соответствует любому буквенно-цифровому символу. Эквивалентно [a-zA-Z0-9_]

\W: соответствует любому небуквенно-цифровому символу. Эквивалентно [^a-zA-Z0-9_]

Повторяющиеся узоры

Чтобы сопоставить повторяющиеся вещи с помощью регулярных выражений, вы можете использовать следующие квантификаторы:

*: соответствует нулю или более вхождений предыдущего элемента. Например, a* соответствует "a” , "aa” и так далее.

+: соответствует одному или нескольким вхождениям предыдущего элемента. Например, a* соответствует "a”, "aa” и т. д., но не является пустой строкой.

?: соответствует нулю или одному вхождению предыдущего элемента. Например, colou?r соответствует как color, так и colour.

{n}: соответствует ровно n вхождениям предыдущего элемента. Например, шаблон a{3} соответствует «ааа».

({n,}): соответствует как минимум n вхождениям предыдущего элемента. Например, шаблон a{2,} соответствует «аа», «ааа», «аааа» и т. д.

({n,m}): соответствует не менее n и не более m вхождений предыдущего элемента. Например, шаблон a{2,4} соответствует «аа», «ааа» и «аааа».

Использование регулярного выражения

Импорт модуля re:

Создание шаблонов регулярных выражений

Шаблон регулярного выражения — это последовательность символов, определяющая шаблон поиска. Могут быть включены буквенные символы, метасимволы и квантификаторы.

Метасимволы имеют уникальные значения и могут использоваться для сопоставления определенных типов символов или шаблонов.

Квантификаторы определяют, сколько раз шаблон должен совпадать.

Использование шаблона регулярного выражения

Когда вы закончите определение шаблона регулярного выражения. Вы можете выполнять различные действия, такие как поиск, сопоставление и замена текста.

Поиск совпадений

Вы можете использовать функцию re.search(), чтобы найти первое вхождение шаблона при поиске совпадений. Если совпадений нет, возвращается None; в противном случае он возвращает объект соответствия.

Метод group() возвращает результат

Сопоставление шаблонов

Если вы хотите проверить, полностью ли строка соответствует шаблону, вы можете использовать функцию re.match().

Он проверяет, совпадает ли шаблон с начала строки. Он также возвращает объект соответствия или None.

Замена текста

Если вы хотите найти шаблон и заменить его другой строкой, вы можете использовать re.sub().

r’Hello’ — это шаблон, Hi — это строка, которую мы хотим заменить шаблоном, а text — это строка, над которой мы работаем.

r’Hello’ это шаблон. Hi — это строка, которую мы хотим заменить шаблоном, а text — это строка, над которой мы сейчас работаем.

Источник: python.org. Более подробная информация доступна на python.org