我希望在@使用正则表达式之后获取电子邮件字符串的一部分。 例如,我有字符串' mirko@gmail.com'我想得到' gmail.com'。 我写了/^@./ 但是没有工作 - 我写了
preg_match('/^@./', $string, $output);
print($output);
我该如何解决?
答案 0 :(得分:2)
你有几个错误。首先,使用插入符号,您告诉您希望@符号在字符串中位于第一位。因此,对于永远不会匹配的电子邮件。然后,您需要设置一个捕获组以实际获取@之后的部分。所以它看起来像这样:
<?php
$mail = "mirko@gmail.com";
preg_match('/@(.+)/', $mail, $output);
print_r($output[1]); // gmail.com
然而,这是一项非常简单的任务,您不应该使用常规表达式。 explode()
会这样做:
<?php
$mail = "mirko@gmail.com";
$mailArray = explode("@", $mail);
print_r($mailArray[1]); // gmail.com
答案 1 :(得分:1)
为什么正则表达式用于这种简单的任务?将strpos
与substr
或仅使用explode()
的{{1}}组合作为第一个参数,使用@
作为其他答案的指示。
$email_string = "mirko@gmail.com";
$result = substr($email_string, strpos($email_string, "@") + 1);
echo $result ;