Php使用正则表达式

时间:2017-09-16 04:19:19

标签: php regex preg-match

我希望在@使用正则表达式之后获取电子邮件字符串的一部分。 例如,我有字符串' mirko@gmail.com'我想得到' gmail.com'。 我写了/^@./ 但是没有工作 - 我写了

preg_match('/^@./', $string, $output);
print($output);

我该如何解决?

2 个答案:

答案 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)

为什么正则表达式用于这种简单的任务?将strpossubstr或仅使用explode()的{​​{1}}组合作为第一个参数,使用@作为其他答案的指示。

$email_string = "mirko@gmail.com";    
$result = substr($email_string, strpos($email_string, "@") + 1);    
echo $result ;