как заменить некоторые символы адреса электронной почты, используя * в Python Django - PullRequest
0 голосов
/ 06 июня 2019

Я новичок в django. У меня проблема с заменой некоторых символов строки. Я хочу, чтобы некоторые символы были скрыты в адресе электронной почты. поэтому я хочу заменить некоторые символы электронной почты, используя *.

адрес электронной почты: demo.cipher@gmail.com

Мне нужен адрес электронной почты, например demo*******@gmail.com

Я использую функцию replace для замены символов адреса электронной почты, но не работает.

x = demo.cipher@gmail.com
e = x.replace(x[5], '*')

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

На мой взгляд, наиболее читаемым способом было бы что-то подобное.

x = demo.cipher@gmail.com
e = x[:4] + "***@" + x.split("@")[-1]

Конечно, это решение использует некоторые предположения, которые не были ясны в вопросе.

  • адрес электронной почты до @ всегда содержит более 4 символов
  • вы хотите оставить первые четыре символа видимыми
  • показ того, сколько букв было заменено, - это уже некоторая информация, которую вы предоставляете своему читателю, в этом нет необходимости Поэтому я фиксирую три звездочки, чтобы сделать их немного безопаснее

Если ваше действие критично ко времени, было бы важно изучить эти разные способы.

0 голосов
/ 06 июня 2019

Использование Regex.

import re

x = "demo.cipher@gmail.com"
print(re.sub(r"(?<=\.)(.*?)(?=@)", lambda x: "*"*len(x.group()), x))

Вывод:

demo.******@gmail.com

Примечание: В приведенном выше примере, если заменили символы между . и @ символов с использованием регулярных выражений Lookbehind & Lookahead

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...