繁体   English   中英

PHP使用正则表达式查找字符串的一部分

[英]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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM