Python电话号码面具

时间:2017-09-10 20:55:04

标签: python regex

我有两个电话号码,我需要屏蔽它们:

,P:(123)456-1234

,P:+1(123) 456-1234

,P:***-***-1234

,P:+*-***-***-1234

import re
m = re.match(r'([0-9\s]+)', line)
print(m.group(1)[-5:-1])
m = re.match(r'([0-9\s-+]+)', line)
print(m.group(1)[-5:-1])

我得到mNone的结果。

1 个答案:

答案 0 :(得分:1)

它不起作用,因为你的正则表达式与这样的电话号码相匹配11234561234

如果您只通过正则表达式传递仅包含一个电话号码的字符串,那么很容易,只有两个部分对您感兴趣:一个不会被屏蔽的部分,以及它之前的部分。

>>> import re
>>> pat = "(.*)(-\d{4})$"
>>> mask_part, public_part = re.match(pat,"+1(123) 456-1234").groups()
>>> print re.sub("\d","*",mask_part) + public_part
+*(***) ***-1234