import re
s = 'nums here (111)123-4567 or (1-800-111-2222)(123)1234567 or 321-123-4567 or ( 112)123-4567 or (113 )123-4567'
My goal is to get all phone numbers from s
.
From selecting variations of phone numbers using regex I try the following:
reg = r'\d{3}-\d{3}-\d{4}|\(\s*\d{3}\s*\)\d{7}|\(\s*\d{3}\s*\)\s*\d{3}-\d{4}'
r1 = re.findall(reg,s)
r1
Which gives me close to what I want
['(111)123-4567',
'800-111-2222',
'(123)1234567',
'321-123-4567',
'( 112)123-4567',
'(113 )123-4567']
However, I would like (1-800-111-2222)
instead of the partial 800-111-2222
My desired output is the following
['(111)123-4567',
'(1-800-111-2222)',
'(123)1234567',
'321-123-4567',
'( 112)123-4567',
'(113 )123-4567']
How do I alter
reg = r'\d{3}-\d{3}-\d{4}|\(\s*\d{3}\s*\)\d{7}|\(\s*\d{3}\s*\)\s*\d{3}-\d{4}'
to get my desired output?