私が達成しようとしていることはかなり単純です。次のような入力が必要です
漢aelena@tratata.com
することが:
漢******@tratata.com
そこで、最初の文字と「@」の間で一致するようにこの正規表現を作成しました。
mb_regex_encoding ('UTF-8' );
mb_ereg_replace('(?<=^.{1}).*?(?=@)','*','漢aelena@tratata.com',1);
ただし、問題は、1 回しか一致しないため、6 つではなく 1 つの星しか付けられないことです。このようなものは、私が得るものです:
漢*@tratata.com
次に、mb_ereg_replace_callback を使用して、次を返したいと思いました。
return $matches[1].str_repeat('*', strlen($matches[1]));
それから仕様を読んだところ、mb_ereg_replace_callback は PHP 5.4.1 以降で利用可能であると書かれていました。
...どうすれば同じことを達成できますか?