这是我的尝试,它实际上把第一和第二组3位数字之间的括号,而我只需要把第一组之间的括号,以满足美国电话号码的正式格式,如(XXX)XXX-XXXX。我被要求这样做使用re.sub只这意味着它是一个模式的问题和正确的语法,我错过了实际上。非常感谢。
import re
def convert_phone_number(phone):
result = re.sub(r"(\d+-)", r"(\1)", phone) # my actual pattern - change only this line
return result
print(convert_phone_number("My number is 212-345-9999.")) # output should be: My number is (212) 345-9999.
# my actual output: My number is (212-)(345-)9999.
print(convert_phone_number("Please call 888-555-1234")) # output should be: Please call (888) 555-1234
# my actual output: Please call (888-)(555-)1234
9条答案
按热度按时间ovfsdjhp1#
您可以使用
参见regex demo
(?<!\S)
-左侧空白边界(\d{3})
-捕获组#1:三位数-
-连字符。替换为圆括号内的Group 1值和后面的空格(将替换连字符)。
m2xkgtsf2#
此结果将包括电话格式的检查部分(必须为XXX-XXX-XXXX),如果正确,则re.sub函数将通过:
jyztefdp3#
tcomlyy64#
wvyml7n55#
dz6r00yl6#
使用此:
0x6upsns7#
dxpyg8gm8#
第一个月
r1zhe5dt9#