Язык не помечен, но если вы используете язык программирования и хотите убедиться, что в адресе электронной почты есть знак @ и отображаются первый и последний символы, вы можете использовать группы захвата и использоватьзамените в группах, которые вы хотите показать, на *
:
^(\S)([^@\n]*)(@)([^@\n]*)(\S)$
^
Начало строки (\S)
Захват группы 1, соответствует непропускусимвол ([^@\s]*)
группа захвата 2, совпадение 0+ раз, не символ @ или пробел. символ (@)
группа захвата 3, совпадение @
([^@\s]*)
Группа захвата 4, соответствует 0+ раз, но не символ @ или пробел (\S)
Группа захвата 5, соответствует непробельный символ $
Конец строки
Regex demo
Например, используя javascript
let pattern = /^(\S)([^@\s]*)(@)([^@\s]*)(\S)$/;
[
"test@test.com",
"te st@te st.com",
"test@test@test.com",
"te@nl",
"t@t",
"test@",
"@tes",
"test"
].forEach(str => {
let replaced = str.replace(pattern, function(_, g1, g2, g3, g4, g5) {
return g1 + g2.replace(/./g, "*") + g3 + g4.replace(/./g, "*") + g5;
});
console.log(replaced);
});