我正在尝试用***
替换@
和.
之间的电子邮件地址的域名
例如:
$email1 = info@mytestdomain.com
$email2 = info@mytestdomain.net
需要成为
$email1 = info@***.com
$email2 = info@***.net
我知道我可以使用PHP preg_replace
函数,但我不确定在我的情况下需要使用什么regex。所以我的问题是,在我的情况下,我应该使用哪个regex来用***
替换@
和.
之间的所有内容?
感谢
您可以使用这个基于断言的正则表达式。
$eml = preg_replace('/@'K[^.]+/', '***', $eml);
实时演示
实时演示
$email1 = "info@mytestdomain.com";
echo preg_replace("/(.*@)([^'.]+)('..*)/","$1***$3",$email1);
输出:
info@***.com
您也可以使用正向前瞻。
$email1 = "info@mytestdomain.com";
echo preg_replace("/[^@]+(?='.)/","***",$email1);
模式解释:
[^@]+(?='.)
匹配任何字符,但不匹配@
一次或多次,仅当字符后面跟着文字点时。