How To Convert 10 Digits With This Format XXX-XXX-XXXX To US Formal Format That Looks Like (XXX) XXX-XXXX Using Python3 Regex Sub
This is my try, it actually put the first and seconds groups of 3 digits between parenthesis while I only need to put the first group only between parenthesis to meet US phone num
Solution 1:
You may use
re.sub(r'(?<!\S)(\d{3})-', r'(\1) ', phone)
See regex demo
Details
(?<!\S)
- a left-hand whitespace boundary(\d{3})
- Capturing group #1: three digits-
- a hyphen.
The replacement is the Group 1 value inside round brackets and a space after (that will replace the hyphen).
Solution 2:
This result will include the checking part for phone format (it must be XXX-XXX-XXXX), if it correct the re.sub function will pass:
import re
def convert_phone_number(phone):
result = re.sub(r'(?<!\S)(\d{3})-(\d{3})-(\d{4}\b)', r'(\1) \2-\3', phone)
return result
print(convert_phone_number("My number is 212-345-9999.")) # My number is (212) 345-9999.
print(convert_phone_number("Please call 888-555-1234")) # Please call (888) 555-1234
print(convert_phone_number("123-123-12345")) # 123-123-12345
print(convert_phone_number("Phone number of Buckingham Palace is +44 303 123 7300")) # Phone number of Buckingham Palace is +44 303 123 7300
Solution 3:
re.sub(r"\b\s(\d{3})-", r" (\1) ", phone)
Solution 4:
import re
def convert_phone_number(phone):
result = re.sub(r"\b\s(\d{3})-\b", r" (\1) ", phone)
return result
Solution 5:
import re
def convert_phone_number(phone):
result = re.sub(r" (\d{3})-",r" (\1) ",phone)
return result
Post a Comment for "How To Convert 10 Digits With This Format XXX-XXX-XXXX To US Formal Format That Looks Like (XXX) XXX-XXXX Using Python3 Regex Sub"