我想用正则表达式替换电话中间的数字但是失败了。这是我的代码:
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。怎么做到了?感谢
答案 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
将会丢失。