Skip to main content

Синтаксис и примеры RegEx выражений

Regular Expression Basic Syntax in Python

Регулярные выражения (regex) являются мощным инструментом для поиска шаблонов и извлечения данных при обработке текста. Модуль re в Python предоставляет обширный набор функций для работы с регулярными выражениями. Эта статья погружает в синтаксис регулярных выражений в Python, сопровождаемая практическими примерами для лучшего понимания концепций.

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

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

  • . (Точка): Соответствует любому одиночному символу, кроме новой строки ' '.
  • ^ (Каретка): Соответствует началу строки.
  • $ (Доллар): Соответствует концу строки.
  • * (Звездочка): Соответствует 0 или более повторений предыдущего элемента.
  • + (Плюс): Соответствует 1 или более повторений предыдущего элемента.
  • ? (Вопросительный знак): Соответствует 0 или 1 повторению предыдущего элемента.
  • {m,n} (Фигурные скобки): Соответствует от m до n повторений предыдущего элемента.
  • [] (Квадратные скобки): Соответствует любому одиночному символу, содержащемуся в скобках.
  • | (Палка): Действует как логическое ИЛИ между выражениями.
  • () (Круглые скобки): Группирует шаблоны вместе.

Ниже представлена таблица, суммирующая эти элементы:

Символ Описание
. Соответствует любому символу, кроме новой строки
^ Соответствует началу строки
$ Соответствует концу строки
* Соответствует 0 или более повторений
+ Соответствует 1 и более повторениям
? Соответствует 0 или 1 повторению
{m,n} Соответствует от m до n повторений
[] Соответствует любому символу в скобках
` `
() Группирует шаблоны

Практические Примеры

Давайте применим эти элементы на практических примерах с использованием модуля re в Python:

  1. Нахождение всех вхождений 'a' в строке:
import re
re.findall('a', 'Mary had a little lamb')
  1. Поиск любого символа между 'a' и 'z':
re.findall('[a-z]', 'Hello World!')
  1. Соответствие любой цифре в строке:
re.findall('\d', 'The room number is 42.')
  1. Поиск трех последовательных цифр:
re.findall('\d{3}', 'Call 911 for emergency')
  1. Поиск слов, начинающихся с 'S':
re.findall(r'S\w+', 'The Sun is shining in the Sky.')
  1. Соответствие слова в начале строки:
re.match('^Hello', 'Hello, world!')
  1. Поиск последовательностей символов, отличных от пробелов:
re.findall('\S+', 'Hello, world! How are you?')
  1. Замена всех цифр на решетку (#):
re.sub('\d', '#', 'Password123')
  1. Разделение строки по любым пробельным символам:
re.split('\s+', 'Split this string by spaces')
  1. Проверка, заканчивается ли строка на 'world':
bool(re.search('world$', 'Hello, world'))

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

Пишите вместе с нами!

Вы можете внести свой вклад в статьи о Python на GitHub: создайте Fork, внесите правки и отправьте нам Pull request.

Profile picture for user AliaksandrSumich
Python engineer, expert in third-party web services integration.
Обновлено: 05/03/2024 - 21:53
Profile picture for user angarsky
Evgeniy Melnikovрецензент
Проверено и опубликовано