如何在纯文本字符串中屏蔽电子邮件地址的一部分以隐藏用户详细信息



给定一个以电子邮件地址结尾的文本字符串,我如何屏蔽:

  1. 除电子邮件ID的第一个字母外的所有字母
  2. 域名的一部分

样本输入:

"The quick brown fox jumps over the lazy dog. china@youwan.com"

预期结果:

"The quick brown fox jumps over the lazy dog. cxxxx@xxxxx.com"
  1. 识别数据中的电子邮件地址
>>> input_text = "The quick brown fox jumps over the lazy dog. china@youwan.com"
>>> body, email_id = input_text.rsplit(' ', 1)
>>> email_id
'china@youwan.com'
  1. 将电子邮件地址替换为x
>>> import re
>>> email_split = re.split('@|.', email_id)
>>> email_split
['china','youwan','com']
>>> username, domain_front, *domain_back_list = email_split
>>> username_masked = username[0]+'x'*(len(username)-1)
>>> domain_front_masked = 'x'*len(domain_front)
>>> domain_back = '.'.join(domain_back_list)
>>> email_masked = '{}@{}.{}'.format(username_masked, domain_front_masked, domain_back)
>>> email_masked
'cxxxx@xxxxx.com'
  1. 将屏蔽的电子邮件地址与原始文本字符串连接起来:
>>> result = '{} {}'.format(body, email_masked)

最新更新