import re
def transformrec(record):
new_record = re.sub(r"([\d-]+\,)",r"+1-\1\0", record)
search_pa=re.search(r"(\,[\d-]+\,)",record)
#print(search_pa[0])
#print(search_pa[1])
print(new_record)
print(transformrec("Sabrina Green,802-867-5309,System Administrator"))
輸出
O/P : Sabrina Green,+1-802-867-5309, System Administrator.
在这种情况下,在号码802-867-5309后面有一个额外的空格。
这不是一个空格,而是一个... ... NUL
字。从 手册:
\number
匹配相同编号的组的内容。各组的编号从1开始,例如:
(.+) \1
匹配'the the'
或'55 55'
但不是'thethe'
注意组后的空格)。这个特殊序列只能用于匹配前99组中的一组。 如果数字的第一个数字是0,或者数字的长度是3个八位数,则不会被解释为组匹配,而是解释为带有八进制值的数字字符。. 在字符类的'['和']'中,所有的数字转义都被视为字符。
你有一个 \0
在您的替换中,您的替换被解读为""。NUL
字符。解决的办法就是把它去掉。
new_record = re.sub(r"([\d-]+\,)",r"+1-\1", record)
你有一个奇怪的参考 \0
. 删除它。
re.sub(r"([\d-]+\,)",r"+1-\1", record)
而且,正如有人建议的那样: return
新值,不要打印。