[英]Python regex replace some digits in the middle with asterisk
我正在尝试用星号(*)替换10到14位长数字的某些部分。
实际上,这是我想做的两件事:
1:消除国家代码(如果存在)
2:将中间的四位数替换为星号
如果我有:9151234567我想要这个:0915 **** 576
如果我有:09361234321我想要这个:0936 **** 321
如果我有+989201234841,请输入:0920 **** 841
是否有可能做到这一点?
nos =["9151234567", "09361234321", "+989201234841"]
print ['0'+a[-10:][:3]+'****'+a[-10:][-3:] for a in nos]
输出:
['0915****567', '0936****321', '0920****841']
a[-10:]
将对后10位进行切片。
import re
nos =["9151234567", "09361234321", "+989201234841"]
print [re.sub(r".*?(\d{3})(\d{4})(\d{3})$", r'0\1****\3', a) for a in nos]
输出:
['0915****567', '0936****321', '0920****841']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.