@mihailos

Почему регулярка находит только одну запись?

Есть код:
import re

phoneRe = re.compile(r"\d-\d\d\d-\d\d\d-\d\d-\d\d")
mo = phoneRe.search("Я нашел номера: 7-963-741-52-74, 7-967-758-33-72")
print(mo.group())

Но находит только первый номер
Почему?
  • Вопрос задан
  • 44 просмотра
Решения вопроса 1
@mihailos Автор вопроса
Я нашел решение, но вывод будет в форме массива и код будет таков:
import re

s = "Я нашел номера: 7-963-741-52-74, 7-967-758-33-72"

allItems = re.findall(r"\d-\d\d\d-\d\d\d-\d\d-\d\d", s)
print(allItems)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
adugin
@adugin Куратор тега Python
import re

text = "Я нашел номера: 7-963-741-52-74, 7-967-758-33-72"
regex = re.compile(r"\d(?:-\d{3}){2}(?:-\d{2}){2}")

for match in regex.finditer(text):
    print(match.group())
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы