我是php中的regex的新手,我试图在字符串中获取@
和.
之间的值。
例如,如果字符串包含值abc@gmail.com
,我希望仅获得gmail
作为输出。
到目前为止,我已尝试使用explode
,但没有任何结果可以建议或指导我如何使用正则表达式执行此操作。提前谢谢。
以下是我到目前为止所做的示例。
<?PHP
$str = 'abc@gmail.com';
$piece = explode('.', $str);
$piece1 = explode('@', $str);
echo $piece[1];
echo $piece1[1];
?>
答案 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"