Python:用星号替换电话数字的模块

时间:2014-10-20 03:43:05

标签: python regex

我想用正则表达式替换电话中间的数字但是失败了。这是我的代码:

temp= re.sub(r'1([0-9]{1}[0-9])[0-9]{4}([0-9]{4})', repl=r'$1****$2', tel_phone)
print temp

在输出中,它始终显示:     $ 1 **** $ 2

但我想这样表现:131 **** 1234。怎么做到了?感谢

1 个答案:

答案 0 :(得分:2)

我认为你试图用****

替换中间的四位数字(最后四位数之前的四位数
>>> s = "13111111234"
>>> temp= re.sub(r'^(1[0-9]{2})[0-9]{4}([0-9]{4})$', r'\1****\2', s)
>>> print temp
131****1234

您可能已在其他语言的替换字符串中看到$1。但是,在Python中,使用\1而不是$1。为了正确,您还需要在第一个捕获组中包含起始1,以便输出还包括起始1;否则,起始1将会丢失。