0

我是 php 中正则表达式的新手,我正在尝试获取字符串@之间的值。.例如,如果一个字符串包含abc@gmail.com我只想gmail作为输出得到的值。

到目前为止,我已经尝试过使用explode,但没有任何结果可以请任何人建议或指导我如何使用正则表达式来做到这一点。提前致谢。

以下是我到目前为止所做的示例。

<?PHP
    $str = 'abc@gmail.com';
    $piece = explode('.', $str);
    $piece1 = explode('@', $str);
    echo $piece[1]; 
    echo $piece1[1];
?>
4

2 回答 2

5
$str = 'abc@gmail.com';

preg_match('/@([^.]+)/', $str, $match);

echo $match[1]; // gmail

以上分解:

  • @从字符开始搜索@
  • [^.]+匹配 1 个或多个不是字符的字符.
  • ( )是在反向引用中捕获该部分,在这种情况下将是索引 1
  • 所以我们通过$match[1]
于 2012-12-26T04:56:13.373 回答
1

如上所述简单:

$input=hardiksondagar@gmail.com;
// now you want to fetch gmail from input user PHP's inbuilt function 
preg_match('/@([^.]+)/', $input, $output);
echo $output[1]; // it'll print "gmail"
于 2012-12-26T05:22:50.373 回答