Метод Python re.findall()
re.findall()— это Pythonreв модуле, используется дляпоиска всех совпаденийфункция.
Он сканирует всю строку и возвращает все подстроки, соответствующие регулярному выражению, в виде списка.
Определения слов: find allЭто означает 'найти все'.
Базовый синтаксис и параметры
re.findall()Это функция уровня модуля.
Формат синтаксиса
re.findall(pattern, string, flags=0)
Описание параметра
- pattern: шаблон регулярного выражения
- string: строка для поиска
- flags: необязательные флаги регулярного выражения
Описание функций
- Возвращаемое значение: Возвращает список, содержащий все совпавшие строки. Если совпадений нет, возвращает пустой список.
- Особенности: Возвращает все совпадения, а не только первое.
Примеры
Пример 1: Найти все числа
Пример
import re
text = У меня 3 яблока, 5 апельсинов, 8 бананов
# Найти все числа
result = re.findall(r'\d+', text)
print(Найденные числа:, result)
text = У меня 3 яблока, 5 апельсинов, 8 бананов
# Найти все числа
result = re.findall(r'\d+', text)
print(Найденные числа:, result)
Ожидаемый вывод:
找到的数字: ['3', '5', '8']
Пример 2: Найти все слова
Пример
import re
text = "Python — мощный, Python — простой"
# Найти все "Python"
result = re.findall(r'Python', text)
print(Python найден:, result)
text = "Python — мощный, Python — простой"
# Найти все "Python"
result = re.findall(r'Python', text)
print(Python найден:, result)
Ожидаемый вывод:
找到的Python: ['Python', 'Python']
Пример 3: Использование групп для извлечения нескольких фрагментов
Пример
import re
text = Эл. почта: [email protected], Эл. почта: [email protected]
# Использование групп для одновременного извлечения имени пользователя и домена
result = re.findall(r'(\w+)@(\w+\.\w+)', text)
print(Найденные адреса эл. почты:, result)
text = Эл. почта: [email protected], Эл. почта: [email protected]
# Использование групп для одновременного извлечения имени пользователя и домена
result = re.findall(r'(\w+)@(\w+\.\w+)', text)
print(Найденные адреса эл. почты:, result)
Ожидаемый вывод:
找到的邮箱: [('test', 'example.com'), ('admin', 'test.org')]
Пример 4: Найти все телефонные номера
Пример
import re
text = Чжан Сан: 138-1234-5678, Ли Сы: 139-9876-5432, Ван У: 137-5555-8888
# Найти все телефонные номера
result = re.findall(r'\d{3}-\d{4}-\d{4}', text)
print(Все телефонные номера:, result)
text = Чжан Сан: 138-1234-5678, Ли Сы: 139-9876-5432, Ван У: 137-5555-8888
# Найти все телефонные номера
result = re.findall(r'\d{3}-\d{4}-\d{4}', text)
print(Все телефонные номера:, result)
Ожидаемый вывод:
所有手机号: ['138-1234-5678', '139-9876-5432', '137-5555-8888']
Другие расширения
Модуль re в Python