PHP将两个符号之间的所有内容替换为其他内容
我正在尝试将PHP将两个符号之间的所有内容替换为其他内容,php,regex,Php,Regex,我正在尝试将@和之间的电子邮件地址的域名替换为*** 例如: $email1 = info@mytestdomain.com $email2 = info@mytestdomain.net 需要成为 $email1 = info@***.com $email2 = info@***.net 我知道我可以使用PHPpreg_replace函数,但我不确定在我的情况下需要使用什么正则表达式。所以我的问题是,在我的例子中,我应该使用哪个正则表达式来替换@和之间的所有内容,使用*** 谢谢您可以使
@
和
之间的电子邮件地址的域名替换为***
例如:
$email1 = info@mytestdomain.com
$email2 = info@mytestdomain.net
需要成为
$email1 = info@***.com
$email2 = info@***.net
我知道我可以使用PHPpreg_replace
函数,但我不确定在我的情况下需要使用什么正则表达式。所以我的问题是,在我的例子中,我应该使用哪个正则表达式来替换@
和
之间的所有内容,使用***
谢谢您可以使用这个基于断言的正则表达式
$eml = preg_replace('/@\K[^.]+/', '***', $eml);
您可以使用此基于断言的正则表达式
$eml = preg_replace('/@\K[^.]+/', '***', $eml);
$email1 = "info@mytestdomain.com";
echo preg_replace("/(.*@)([^\.]+)(\..*)/","$1***$3",$email1);
输出:
info@***.com
$email1 = "info@mytestdomain.com";
echo preg_replace("/(.*@)([^\.]+)(\..*)/","$1***$3",$email1);
输出:
info@***.com
你也可以用一个
图案说明:
info@***.com
[^@]+(?=\)
仅当字符后跟文字点时,才与任何字符匹配一次或多次。也可以使用
图案说明:
info@***.com
[^@]+(?=\)
仅当字符后跟文字点时才匹配任何字符,但不匹配@
的字符一次或多次。@非常感谢,这样的电子邮件也会这样吗<代码>我的名字。prefix@domain.com?@user2028856我也对其进行了改进,请在我提供的演示链接上尝试provided@Thanks很多,这样的邮件也是这样吗<代码>我的名字。prefix@domain.com?@user2028856我也对其进行了改进,请在我提供的演示链接上尝试