我如何使用 re.sub python 方法将 +1 附加到一个电话号码上?
当我使用下面的函数时,它将这个字符串 “802-867-5309 “改为这个字符串 “+1+15309″。我试图得到这个字符串 “+1-802-867-5309″。docs replace中的例子显示了如何替换整个字符串,我不想替换整个字符串,只想附加一个+1。
import re
def transform_record(record):
new_record = re.sub("[0-9]+-","+1", record)
return new_record
print(transform_record("Some sample text 802-867-5309 some more sample text here"))
解决方案:
如果你可以用一个模式来匹配你的电话号码,你可以用以下方法来参考匹配值。\g<0>
替换中的backreference。
所以,以最简单的模式,如 \d+-\d+-\d+
匹配您的电话号码,您可以使用
new_record = re.sub(r"\d+-\d+-\d+", r"+1-\g<0>", record)
见 搜索引擎演示. 查看更多关于如何匹配电话号码的想法在 用python脚本查找电话号码.
见 Python演示:
import re
def transform_record(record):
new_record = re.sub(r"\d+-\d+-\d+", r"+1-\g<0>", record)
return new_record
print(transform_record("Some sample text 802-867-5309 some more sample text here"))
# => Some sample text +1-802-867-5309 some more sample text here