Регулярные выражения в Python для ЕГЭ

Что такое регулярные выражения?

Регулярные выражения, или регэкспы, представляют собой мощный инструмент для работы с текстом. Они позволяют находить, заменять и проверять строки по заданным шаблонам. В Python регулярные выражения реализованы в модуле re, который предоставляет множество функций для работы с текстом.

Зачем нужны регулярные выражения на ЕГЭ?

На экзамене по информатике и ИКТ (ЕГЭ) регулярные выражения могут понадобиться для решения задач, связанных с обработкой текстовых данных. Например, вам может потребоваться найти все email-адреса в тексте или проверить, соответствует ли строка определённому формату.

Основные функции модуля re

Модуль re предоставляет несколько ключевых функций, которые помогут вам работать с регулярными выражениями:

  • re.match() — проверяет, соответствует ли строка началу шаблона.
  • re.search() — ищет первое вхождение шаблона в строке.
  • re.findall() — возвращает все найденные вхождения шаблона в виде списка.
  • re.sub() — заменяет найденные вхождения шаблона на другую строку.

Синтаксис регулярных выражений

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

  • . — любой символ, кроме новой строки.
  • d — любая цифра (0-9).
  • D — любой нецифровой символ.
  • w — любой алфавитно-цифровой символ (буквы и цифры).
  • s — любой пробельный символ (пробел, табуляция и т.д.).
  • ^ — начало строки.
  • $ — конец строки.

Примеры использования регулярных выражений

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

Поиск email-адресов

Предположим, у нас есть текст, и мы хотим найти все email-адреса. Для этого мы можем использовать следующий шаблон:

r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}'

Этот шаблон ищет строки, которые соответствуют формату email-адреса. Пример кода:

import re

text = "Контакты: example@mail.com, test123@domain.org"
emails = re.findall(r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}', text)
print(emails)  # ['example@mail.com', 'test123@domain.org']

Проверка формата номера телефона

Допустим, нам нужно проверить, соответствует ли строка формату телефонного номера. Например, формат +7 (999) 123-45-67. Шаблон может выглядеть так:

r'^+7 (d{3}) d{3}-d{2}-d{2}$'

Пример кода для проверки:

phone = "+7 (999) 123-45-67"
if re.match(r'^+7 (d{3}) d{3}-d{2}-d{2}$', phone):
    print("Номер телефона корректен")
else:
    print("Номер телефона некорректен")

Советы по работе с регулярными выражениями

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

  • Тестируйте свои регулярные выражения. Используйте онлайн-инструменты, такие как regex101.com, чтобы проверить свои шаблоны.
  • Читать документацию. Модуль re имеет обширную документацию, которая поможет вам разобраться в нюансах.
  • Начинайте с простых шаблонов. Постепенно усложняйте их, добавляя метасимволы и конструкции.

Заключение

Регулярные выражения — это мощный инструмент для обработки текстовых данных, который может значительно упростить вашу работу. На ЕГЭ они могут пригодиться для решения различных задач, связанных с текстом. Освоив основы регулярных выражений, вы сможете эффективно использовать их в своих проектах и на экзамене.

Примечание

Не забывайте практиковаться! Чем больше вы будете работать с регулярными выражениями, тем легче будет их использовать в будущем.