使用php进行字符串比较的正则表达式

时间:2012-12-26 04:51:49

标签: php

我是php中的regex的新手,我试图在字符串中获取@.之间的值。 例如,如果字符串包含值abc@gmail.com,我希望仅获得gmail作为输出。

到目前为止,我已尝试使用explode,但没有任何结果可以建议或指导我如何使用正则表达式执行此操作。提前谢谢。

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

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

2 个答案:

答案 0 :(得分:5)

$str = 'abc@gmail.com';

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

echo $match[1]; // gmail

以上细分:

  • @从字符@
  • 开始搜索
  • [^.]+匹配1个或多个不是字符.
  • 的字符
  • ( )是在反向引用中捕获该部分,在这种情况下将是索引1
  • 因此我们通过$match[1]
  • 访问它

答案 1 :(得分: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"