我试图用@
.
和***
之间的电子邮件地址的域名
例如:
$email1 = info@mytestdomain.com
$email2 = info@mytestdomain.net
需要成为
$email1 = info@***.com
$email2 = info@***.net
我知道我可以使用PHP preg_replace
函数,但我不确定在我的情况下我需要使用什么正则表达式。所以我的问题是,我应该使用哪个正则表达式将@
和.
之间的所有内容替换为***
?
谢谢
答案 0 :(得分:4)
答案 1 :(得分:2)
<强> Live demo 强>
$email1 = "info@mytestdomain.com";
echo preg_replace("/(.*@)([^\.]+)(\..*)/","$1***$3",$email1);
<强>输出:强>
info@***.com
答案 2 :(得分:0)
您也可以使用positive lookahead。
$email1 = "info@mytestdomain.com";
echo preg_replace("/[^@]+(?=\.)/","***",$email1);
模式说明:
[^@]+(?=\.)
仅当字符后跟一个文字点时,才匹配任何字符,但不匹配@
一次或多次。