0Pricing
Python Academy · Урок

Использование re.match, re.search, re.findall

Применяйте основные функции re для поиска шаблонов в строках.

«Использование re.match, re.search, re.findall» — бесплатный урок Python Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Python Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Python Academy содержит 4 уроков всего.

Введение

Модуль re предоставляет несколько функций для применения шаблонов к строкам.

re.match() — начало строки

re.match(pattern, string) выполняет поиск только в BEGINNING строки. Возвращает объект Match или None.
import re
print(re.match(r'\d+', '123abc'))  # match
print(re.match(r'\d+', 'abc123'))  # None

re.search() — в любом месте

re.search(pattern, string) находит FIRST совпадение в любом месте строки. Возвращает Match или None.
import re
m = re.search(r'\d+', 'abc 123 def')
if m: print(m.group())

re.findall() — все совпадения

re.findall(pattern, string) возвращает список всех неперекрывающихся совпадений в виде строк.
import re
print(re.findall(r'\d+', 'one 1 two 22 three 333'))

re.finditer() — итератор

re.finditer() похожа на findall(), но возвращает итератор объектов Match, что позволяет экономить память при работе с большими строками.
import re
for m in re.finditer(r'\d+', 'x1 y22 z333'):
    print(m.group(), m.start(), m.end())

Методы объекта Match

m.group() возвращает найденную строку. m.start() и m.end() возвращают позиции. m.span() возвращает (start, end).
import re
m = re.search(r'(\w+)@(\w+)', 'send to user@example')
if m:
    print(m.group(), m.group(1), m.group(2))

re.fullmatch()

re.fullmatch(pattern, string) требует, чтобы шаблон соответствовал ENTIRE строке.
import re
print(re.fullmatch(r'\d+', '123'))    # match
print(re.fullmatch(r'\d+', '123abc'))  # None

re.split()

re.split(r'\s+', string) разделяет строку по шаблону. r'[,;\s]+' разделяет по запятым, точкам с запятой и пробелам.
import re
print(re.split(r'[,;\s]+', 'one,two; three four'))

re.sub() для замены

re.sub(pattern, repl, string) заменяет совпадения. repl может быть строкой или функцией.
import re
print(re.sub(r'\d+', 'NUM', 'I have 3 cats and 12 dogs'))

Скомпилированные шаблоны

pattern = re.compile(r'\d+') компилирует шаблон один раз. Используйте pattern.findall(), .search() и другие методы — это быстрее при повторном применении.
import re
digits = re.compile(r'\d+')
print(digits.findall('abc 123 def 456'))

Флаги

re.IGNORECASE (re.I), re.MULTILINE (re.M) и re.DOTALL (re.S) изменяют поведение поиска совпадений.
import re
print(re.findall(r'hello', 'HELLO World', re.IGNORECASE))

Быстрая проверка

В чём разница между re.match() и re.search()?

Итоги

re.match (только начало), re.search (первое совпадение в любом месте), re.findall (все совпадения в виде списка), re.finditer (все совпадения как объекты Match), re.sub (замена), re.compile (повторное использование шаблона).

Продолжайте

Отличная работа! Следующий урок уже ждёт Вас.

Часто задаваемые вопросы

Урок «Использование re.match, re.search, re.findall» бесплатный?

Да — полный текст урока «Использование re.match, re.search, re.findall» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Python Academy, подпишись на CoddyKit PRO. Курс Python Academy содержит 4 уроков всего.

Чему я научусь в уроке «Использование re.match, re.search, re.findall»?

Применяйте основные функции re для поиска шаблонов в строках. Ты практикуешь Python Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Python Academy?

Предыдущий опыт не требуется. Python Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Использование re.match, re.search, re.findall»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Python Academy?

Да. Каждый урок Python Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Основы регулярных выражений
  2. Использование re.match, re.search, re.findall
  3. Группы и именованные захваты
  4. re.sub, флаги и скомпилированные шаблоны
← Назад к Python Academy