Найти телефонные номера в имеющемся листе | python
Имеется лист вида:
['Список клиентов и задач от 09 апреля 2020 г.', '№ клиента', 'Ник клиента', 'ФИО и Контакты', 'Менеджер клиента', 'Статус клиента', 'Дата', 'Менеджер задачи', 'Действие', 'Итог', 'Задача', 14872, 'Текст', 'ТЕКСТ Александр +X(XXX)XXX-XX-XX; Александр +X(XXX)XXX-XX-XX; Александр +X(XXX)XXX-XX-XX; Александр +X(XXX)XXX-XX-XX; АЛЕКСАНДР ПЕРЕЗВОНИТЬ +X(XXX)XXX-XX-XX; АЛЕКСАНДР ПЕРЕЗВОН +X(XXX)XXX-XX-XX', 'Фамилия Имя Отчество']
Необходимо извлечь номера телефонов вида +X(XXX)XXX-XX-XX, преобразовать их в вид XXXXXXXXXXX - то есть убрать "+", "(", ")", "-". Прошу заметить, что в элементах списка есть повторение номеров: 'ТЕКСТ Александр +X(XXX)XXX-XX-XX; Александр +X(XXX)XXX-XX-XX; ...'
регулярка: r"\+[7-8]\([0-9]+\)[0-9]+\-[0-9]+\-[0-9]+"
Ответы (1 шт):
Всем спасибо, разобрался!
for i in l:
tel = str(i)
tel2 = (re.findall('\+([7-8]\([0-9]+\)[0-9]+\-[0-9]+\-[0-9]+)', tel))
if tel2:
l2.append(tel2)
Добавил все номера в отдельный список,
Получилось что-то такое:
[['X(XXX)XXX-XX-XX', 'X(XXX)XXX-XX-XX', 'X(XXX)XXX-XX-XX', 'X(XXX)XXX-XX-XX', 'X(XXX)XXX-XX-XX, 'X(XXX)XXX-XX-XX'], ['X(XXX)XXX-XX-XX', 'X(XXX)XXX-XX-XX'], ...
Затем:
for x in l2:
for y in x:
l4.append(y)
Наверное, можно было как-то проще сделать и менее коряво.