regexp para esconder parcialmente o email? [fechadas]

É bem simples o que estou tentando alcançar, quero informações como

[email protected]

ser estar:

漢******@tratata.com

Então eu fiz este regexp para combinar entre o primeiro char e o '@'.

mb_regex_encoding ('UTF-8' );
mb_ereg_replace('(?<=^.{1}).*?(?=@)','*','漢[email protected]',1);

O problema, porém, seria apenas uma vez, e, portanto, só iria colocar lá uma estrela, em vez de seis. Algo assim, é o que eu teria:

漢*@tratata.com

Então eu queria usar mb_ereg_replace_callback, para retornar:

return $matches[1].str_repeat('*', strlen($matches[1]));

Então eu li as especificações e ele disse mb_ereg_replace_callback está disponível no PHP 5.4.1 ou posterior.

... Alguma idéia de como eu poderia conseguir a mesma coisa?

questionAnswers(5)

yourAnswerToTheQuestion