Регулярні вирази Python – це просто
Регулярні вирази (regex) — це потужні інструменти, які використовуються для зіставлення та маніпулювання рядками на основі шаблонів. У Python модуль re
забезпечує підтримку регулярних виразів, дозволяючи вам ефективно виконувати складні рядкові операції. Ця стаття познайомить вас з основами регулярних виразів і покаже, як їх ефективно використовувати в Python.
Початок роботи з модулем re
Щоб використовувати регулярні вирази в Python, вам потрібно імпортувати модуль re
. Цей модуль надає кілька функцій для роботи з шаблонами регулярних виразів:
re.match()
- перевіряє збіг лише на початку рядка.re.search()
- шукає відповідність у всьому рядку.re.findall()
- Знаходить усі збіги в рядку та повертає їх у вигляді списку.re.sub()
- Замінює збіги в рядку вказаною заміною.
Зіставлення основного шаблону
Регулярні вирази використовують спеціальні символи для визначення шаблонів пошуку. Ось кілька основних шаблонів:
.
- Відповідає будь-якому одному символу, крім нового рядка.\d
- відповідає будь-якій цифрі (еквівалентно[0-9]
).\w
– відповідає будь-якому буквено-цифровому символу (еквівалент[a-zA-Z0-9_]
).\s
- відповідає будь-якому пробілу.^
- відповідає початку рядка.$
- відповідає кінцівці рядка.
Приклади
Нижче наведено кілька прикладів, що демонструють збіг базового шаблону:
import re
# Match a pattern at the beginning of a string
result = re.match(r'Hello', 'Hello, World!')
print(result.group()) # Output: Hello
# Search for a pattern in the entire string
result = re.search(r'\d+', 'There are 24 hours in a day.')
print(result.group()) # Output: 24
Використання регулярних виразів із групами
Групи використовуються для захоплення частин зіставленого тексту. Вони визначаються за допомогою дужок. Наприклад, щоб виділити певні частини візерунка, ви можете використовувати групи:
pattern = r'(\d{3})-(\d{2})-(\d{4})'
text = 'My number is 123-45-6789.'
# Find all matches with groups
match = re.search(pattern, text)
if match:
print(f'Area Code: {match.group(1)}') # Output: 123
print(f'Prefix: {match.group(2)}') # Output: 45
print(f'Suffix: {match.group(3)}') # Output: 6789
Використання спеціальних символів
Регулярні вирази містять кілька спеціальних символів для більш складного зіставлення шаблонів:
*
– відповідає 0 або більше входжень попереднього елемента.+
– відповідає 1 або більше входженням попереднього елемента.?
– відповідає 0 або 1 входженню попереднього елемента.{n}
– точно відповідаєn
входженням попереднього елемента.|
– відповідає шаблону до або після нього.
Приклади
Ось кілька прикладів використання спеціальних символів:
# Match a pattern with 0 or more occurrences
result = re.findall(r'\d*', '123 abc 456')
print(result) # Output: ['123', '', '', '456']
# Match a pattern with 1 or more occurrences
result = re.findall(r'\d+', 'There are 24 apples and 3 oranges.')
print(result) # Output: ['24', '3']
Заміна тексту регулярними виразами
Функція re.sub()
використовується для заміни частин рядка, які відповідають шаблону:
text = 'The rain in Spain falls mainly in the plain.'
# Replace 'Spain' with 'France'
new_text = re.sub(r'Spain', 'France', text)
print(new_text) # Output: The rain in France falls mainly in the plain.
Висновок
Регулярні вирази є потужним інструментом для зіставлення шаблонів і маніпулювання текстом у Python. За допомогою модуля re
ви можете шукати, зіставляти та замінювати текст на основі складних шаблонів. Розуміючи базовий синтаксис і спеціальні символи, ви можете використовувати регулярні вирази для ефективного виконання широкого кола завдань обробки тексту.