import re
s = ' 1.210.223.1112 (113)-945-6373; 222.212.2333 (111)123-4567 (111)1234567 (111 )123-4567 \n(1-100-533-1710)the ( 111)123-4567 Z1902022 (111)123-4567 N18-2181 Z1234567 1-22-2001 (100) 115-5198 f: (110)-111-1111 112.222.1112 (222)-222-3337 (120) 305-1314'
У меня есть список телефонных номеров, и я хотел бы получить все варианты в строке s
. Из модификации выбора вариантов телефонных номеров с помощью регулярных выражений я попробовал следующее
reg = r'\(?\s*\d?\s*-?\d{3}\s*[)-]?-?\s*\d{3}\s*-?\s*\d{4}\)?'
r1 = re.findall(reg,s)
r1
, что дает мне близкое к тому, что я хочу
['(113)-945-6373',
'(111)123-4567',
'(111)1234567',
'(111 )123-4567',
'(1-100-533-1710)',
'( 111)123-4567',
'(111)123-4567',
'(100) 115-5198',
'(110)-111-1111',
'(222)-222-3337',
'(120) 305-1314']
Однако, этоотсутствует 1.210.223.1112
и 222.212.2333
.
Я попытался изменить reg
, добавив .
, но это не дает мне того, что я ищу
reg = r'\(?\s.*\d?\s*-?\d{3}\s*[)-]?-?\s*\d{3}\s*-?\s*\d{4}\)?'
Мой желаемый результат следующий, который включает 1.210.223.1112
и 222.212.2333
['1.210.223.1112',
'(113)-945-6373',
'222.212.2333',
'(111)123-4567',
'(111)1234567',
'(111 )123-4567',
'(1-100-533-1710)',
'( 111)123-4567',
'(111)123-4567',
'(100) 115-5198',
'(110)-111-1111',
'(222)-222-3337',
'(120) 305-1314']
Как мне изменить reg
, чтобы получить желаемый результат?