Регулярные выражения, часто называемые сокращенно регулярными выражениями, – это мощный инструмент для управления текстовыми шаблонами и поиска по ним. Поначалу они могут пугать, но как только вы поймете основы, вы откроете целый мир возможностей. В этой статье мы рассмотрим различные методы использования регулярных выражений и приведем множество примеров кода, которые помогут вам в этом.
-
Соответствие литеральным символам.
Иногда вам просто нужно найти точное соответствие определенному слову или фразе. Допустим, мы хотим найти все вхождения слова «привет» в строке. Мы можем добиться этого, используя следующее регулярное выражение:import re text = "Hello, world! This is a simple example of regex." pattern = r"hello" matches = re.findall(pattern, text, re.IGNORECASE) print(matches)Выход:
['Hello'] -
Классы и диапазоны символов.
Регулярные выражения позволяют определять классы символов, соответствующие набору символов. Например, если мы хотим найти все гласные в нижнем регистре, мы можем использовать следующий код регулярного выражения:import re text = "The quick brown fox jumps over the lazy dog." pattern = r"[aeiou]" matches = re.findall(pattern, text, re.IGNORECASE) print(matches)Выход:
['e', 'u', 'i', 'o', 'o', 'u', 'e', 'a', 'o'] -
Кванторы.
Кванторы помогают указать, сколько раз должен повторяться символ или группа символов. Например, если мы хотим найти все вхождения последовательных цифр в строке, мы можем использовать следующий код:import re text = "I have 123 apples and 456 bananas." pattern = r"\d+" matches = re.findall(pattern, text) print(matches)Выход:
['123', '456'] -
Привязки.
Привязки позволяют сопоставлять шаблоны в определенных позициях строки. Например, если мы хотим найти слово «мир» только тогда, когда оно встречается в конце предложения, мы можем использовать следующий код:import re text = "Hello, world! This is a simple example of regex." pattern = r"world$" matches = re.findall(pattern, text, re.IGNORECASE) print(matches)Выход:
['world'] -
Группирование и захват.
Регулярные выражения поддерживают группировку и захват частей шаблона. Это может быть полезно, если вы хотите извлечь определенную информацию из строки. Допустим, мы хотим извлечь дату из строки в формате «ГГГГ-ММ-ДД». Мы можем использовать следующий код:import re text = "Today's date is 2024-01-31." pattern = r"(\d{4})-(\d{2})-(\d{2})" matches = re.findall(pattern, text) for match in matches: print(f"Year: {match[0]}, Month: {match[1]}, Day: {match[2]}")Выход:
Year: 2024, Month: 01, Day: 31
Регулярные выражения – это универсальный инструмент для сопоставления шаблонов и манипуляций с текстом. В этой статье мы рассмотрели лишь некоторые из множества методов и приемов, которые можно использовать с регулярными выражениями. Освоив регулярные выражения, вы приобретете мощный навык, позволяющий с легкостью обрабатывать сложные текстовые шаблоны. Итак, приступайте к изучению магии регулярных выражений!