2017-09-10 60 views
-1

我有兩個電話號碼,我需要掩蓋他們:Python的電話號碼面膜

,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

請顯示您的嘗試。 – Rishav

+0

我已粘貼代碼,請查看@Rishav –

+0

查看https://ideone.com/nY35a8 –

回答

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 
+0

括號被_ –

+0

屏蔽嗯,您提供的號碼形式是您真正必須處理的唯一形式與?另外,你將不得不處理外國號碼? –

+0

是的,我也必須處理國外號碼 –