Регулярные выражения в Python для новичков

У вас когда-нибудь возникала потребность в поиске строк, слов или даже символов в тексте?

В этой статье вы узнаете о регулярных выражениях в Python и научитесь работать с модулем «re», который позволяет совершать массу сравнительных и поисковых действий с текстом!

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

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

Импортируем модуль «re»

Для начала работы нам нужно импортировать модуль.

Модуль «re» устанавливать не нужно, он устанавливается вместе с самим Python. Нам лишь нужно импортировать его в проект.

Для этого в начале строки пропишем:

import re

Основные регулярные выражения

re.match() – ищет совпадения в тексте, по умолчанию в начале строки.

import re

pattern = ‘34’
testString = ’12 timeweb 34 community 58’
result = re.search(pattern, testString)

print(result)
# Результат None, если совпадения будут обнаружены - result вернет их.

re.findall() – возвращает все строки, где было обнаружено совпадение.

import re

pattern = ‘d+’ (ищем только числа с помощью метасимволов, об этом далее)
testString = ’12 timeweb 34 community 58’
result = re.findall(pattern, testString)

print(result)
# Результат [‘12’, ‘34’, ‘58’], если совпадения не будут обнаружены - то []

re.split() – разбивает строки по заданному паттерну и возвращает разбитые строки.

import re

pattern = ‘d+’
testString = ’12 timeweb 34 community 58’
result = re.split(pattern, testString)

print(result)
# Результат [‘timeweb’, ‘community’], если совпадения не будут обнаружены - то []

re.sub() – заменяет символы по заданному паттерну на заданные символы и возвращает исправленную строку.

import re

pattern = ‘timeweb’
replace = ‘hello’
testString = ’timeweb community of timeweb community’
result = re.sub(pattern, replace, testString)

print(result)
# Результат ‘hello community of hello community’, если совпадения не будут обнаружены, то вернется первоначальная строка.

re.search() – ищет указанный паттерн в строке и при первом же совпадении возвращает сам паттерн, в ином же случае возвращает None. 

import re

pattern = ‘34’
testString = ’12 timeweb 34 community 58’
result = re.search(pattern, testString)

print(result)
# Результат ‘34’, если совпадения не будут обнаружены - None.

Метасимволы

Давайте рассмотрим примеры использования метасимволов, которые есть в модуле.

К примеру, нам нужно найти слова car, cat и cab.

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

pattern = ‘ca[rtb] ’

Либо же мы можем указать диапазон символов:

pattern = ‘ca[a-e] ‘ (заменяет [abcde])
pattern = ‘ca[1-5] ’ (заменяет [12345])

# Вы можете искать обратные указанным вами символам.
# К примеру ‘[^0-9]’ ищет любые символы, кроме чисел;
# ‘[0-9]’ ищет все числа.

Также мы можем обозначить, с какой стороны искать совпадения!

pattern = ‘^timeweb’ - ищет в начале
pattern = ‘timeweb$’ - ищет в конце

Мы можем обозначить нужное количество символов с помощью периода.

pattern = ‘tim...’ - ищет tim и следующие три символа в начале

А еще метасимволы можно комбинировать!

pattern = ‘^t.....b$’

# Найдет совпадение, если в строке 7 символов, 
# первым из которых является t, а последним b. 

Краткие замены некоторым метасимволам

  • d – ищет числа в тексте, заменяет [0-9].
  • D – ищет любые символы кроме чисел в тексте, заменяет ‘[^0-9]’.
  • s – находит совпадения при наличии пробелов в тексте.
  • S – находит совпадения при отсутствии пробелов в тексте.

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

Межтекстовые Отзывы
Посмотреть все комментарии
guest