PYTHON_COMMUNITY_RU Telegram 2598
🖥 Краткое руководство по RegEx в Python

📦 Импорт модуля:

import re

🔍 Основные функции модуля re

re.search(pattern, string) # Находит первое совпадение в любой части строки
re.match(pattern, string) # Проверяет совпадение только в начале строки
re.fullmatch(pattern, string) # Проверяет, соответствует ли вся строка шаблону полностью
re.findall(pattern, string) # Возвращает список всех совпадений
re.finditer(pattern, string) # То же самое, но возвращает итератор с объектами Match
re.sub(pattern, repl, string) # Заменяет найденные по шаблону участки
re.split(pattern, string) # Делит строку по шаблону

# 🧠 Основы синтаксиса шаблонов

| Шаблон | Значение |
|---------|-----------------------------------|
| . | Любой символ, кроме символа новой строки |
| ^ | Начало строки |
| $ | Конец строки |
| * | 0 или более повторений |
| + | 1 или более повторений |
| ? | 0 или 1 повторение |
| {n} | Ровно n повторений |
| {n,} | n или больше повторений |
| {n,m} | От n до m повторений |
| [] | Класс символов |
| [^] | Отрицание класса символов |
| | | Логическое ИЛИ (`a|b`) |
| () | Группа захвата |
| \ | Экранирование специальных символов|

💡 Примеры

re.search(r'\d+', 'ID=12345') # Найдёт '12345' (одна или более цифр)
re.match(r'^\w+$', 'hello_world') # Проверяет, что вся строка состоит из букв, цифр или _
re.findall(r'[A-Z][a-z]+', 'Mr. Smith and Dr. Brown') # ['Smith', 'Brown']
re.sub(r'\s+', '-', 'a b c') # Результат: 'a-b-c'
re.split(r'[;,\s]\s*', 'one, two;three four') # ['one', 'two', 'three', 'four']

🎯 Работа с группами захвата

text = 'Name: John, Age: 30'
match = re.search(r'Name: (\w+), Age: (\d+)', text)
if match:
print(match.group(1)) # John
print(match.group(2)) # 30

Группы можно называть:

pattern = r'(?P<name>\w+): (?P<value>\d+)'
match = re.search(pattern, 'score: 42')
match.group('name') # 'score'
match.group('value') # '42'

🧱 Сложные шаблоны

pattern = r'\b(?:https?://)?(www\.)?\w+\.\w+\b'
text = 'Visit https://example.com or www.test.org'
re.findall(pattern, text) # [['www.'], ['www.']]

⚠️ Полезные рекомендации

• Используйте префикс r'' перед шаблонами, чтобы не нужно было экранировать обратный слэш \
• re.compile(pattern) помогает повысить скорость при многократном использовании шаблона
• Лучше использовать re.search вместо re.match, так как он ищет совпадение в любом месте строки

Быстрая проверка шаблонов

📍 Онлайн-сервисы для тестирования:
- https://regex101.com/
- https://pythex.org/

Если нужна отдельная шпаргалка по re.sub с использованием лямбда-функций, замен и функций внутри, ставь лайк 👍

@Python_Community_ru



tgoop.com/Python_Community_ru/2598
Create:
Last Update:

🖥 Краткое руководство по RegEx в Python

📦 Импорт модуля:

import re

🔍 Основные функции модуля re

re.search(pattern, string) # Находит первое совпадение в любой части строки
re.match(pattern, string) # Проверяет совпадение только в начале строки
re.fullmatch(pattern, string) # Проверяет, соответствует ли вся строка шаблону полностью
re.findall(pattern, string) # Возвращает список всех совпадений
re.finditer(pattern, string) # То же самое, но возвращает итератор с объектами Match
re.sub(pattern, repl, string) # Заменяет найденные по шаблону участки
re.split(pattern, string) # Делит строку по шаблону

# 🧠 Основы синтаксиса шаблонов

| Шаблон | Значение |
|---------|-----------------------------------|
| . | Любой символ, кроме символа новой строки |
| ^ | Начало строки |
| $ | Конец строки |
| * | 0 или более повторений |
| + | 1 или более повторений |
| ? | 0 или 1 повторение |
| {n} | Ровно n повторений |
| {n,} | n или больше повторений |
| {n,m} | От n до m повторений |
| [] | Класс символов |
| [^] | Отрицание класса символов |
| | | Логическое ИЛИ (`a|b`) |
| () | Группа захвата |
| \ | Экранирование специальных символов|

💡 Примеры

re.search(r'\d+', 'ID=12345') # Найдёт '12345' (одна или более цифр)
re.match(r'^\w+$', 'hello_world') # Проверяет, что вся строка состоит из букв, цифр или _
re.findall(r'[A-Z][a-z]+', 'Mr. Smith and Dr. Brown') # ['Smith', 'Brown']
re.sub(r'\s+', '-', 'a b c') # Результат: 'a-b-c'
re.split(r'[;,\s]\s*', 'one, two;three four') # ['one', 'two', 'three', 'four']

🎯 Работа с группами захвата

text = 'Name: John, Age: 30'
match = re.search(r'Name: (\w+), Age: (\d+)', text)
if match:
print(match.group(1)) # John
print(match.group(2)) # 30

Группы можно называть:

pattern = r'(?P<name>\w+): (?P<value>\d+)'
match = re.search(pattern, 'score: 42')
match.group('name') # 'score'
match.group('value') # '42'

🧱 Сложные шаблоны

pattern = r'\b(?:https?://)?(www\.)?\w+\.\w+\b'
text = 'Visit https://example.com or www.test.org'
re.findall(pattern, text) # [['www.'], ['www.']]

⚠️ Полезные рекомендации

• Используйте префикс r'' перед шаблонами, чтобы не нужно было экранировать обратный слэш \
• re.compile(pattern) помогает повысить скорость при многократном использовании шаблона
• Лучше использовать re.search вместо re.match, так как он ищет совпадение в любом месте строки

Быстрая проверка шаблонов

📍 Онлайн-сервисы для тестирования:
- https://regex101.com/
- https://pythex.org/

Если нужна отдельная шпаргалка по re.sub с использованием лямбда-функций, замен и функций внутри, ставь лайк 👍

@Python_Community_ru

BY Python Community




Share with your friend now:
tgoop.com/Python_Community_ru/2598

View MORE
Open in Telegram


Telegram News

Date: |

But a Telegram statement also said: "Any requests related to political censorship or limiting human rights such as the rights to free speech or assembly are not and will not be considered." Unlimited number of subscribers per channel A few years ago, you had to use a special bot to run a poll on Telegram. Now you can easily do that yourself in two clicks. Hit the Menu icon and select “Create Poll.” Write your question and add up to 10 options. Running polls is a powerful strategy for getting feedback from your audience. If you’re considering the possibility of modifying your channel in any way, be sure to ask your subscribers’ opinions first. How to Create a Private or Public Channel on Telegram? While the character limit is 255, try to fit into 200 characters. This way, users will be able to take in your text fast and efficiently. Reveal the essence of your channel and provide contact information. For example, you can add a bot name, link to your pricing plans, etc.
from us


Telegram Python Community
FROM American