[英]Php find a part of string using regular expression
我想在@之后使用正则表达式获取电子邮件字符串的一部分。 例如,我有字符串“ mirko@gmail.com”,并且我想获取“ gmail.com”。 我写了/^@./但没有用-我写了
preg_match('/^@./', $string, $output);
print($output);
我该如何解决?
你有几个错误。 首先,用插入号告诉您希望@符号在字符串中位于第一位。 因此,对于永远不会匹配的电子邮件。 然后,您需要设置一个捕获组以实际获取@之后的零件。 所以看起来像这样:
<?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
为什么用正则表达式执行这种简单的任务? 将strpos
与substr
结合使用,或仅将explode()
与@
用作其他答案所指示的第一个参数。
$email_string = "mirko@gmail.com";
$result = substr($email_string, strpos($email_string, "@") + 1);
echo $result ;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.