php中使用regex进行字符串匹配


String match in php using regex

可能重复:
使用php进行字符串比较的正则表达式

有人能帮助如何从"@"till"中获取值吗?",例如如果字符串包含值abc@gmail.com",所以输出应该是"@gmail"。"使用正则表达式。

下面是只显示"gmail"的示例代码。

$str = 'abc@gmail.com';
preg_match('/@([^.]+)/', $str, $match);
echo $match[1];

您的正则表达式不起作用,因为

  1. 您的捕获组不包括@符号
  2. 您忘记转义.字符(字符集之外(,因为.是正则表达式中的元字符(表示匹配所有字符(

您的正则表达式应该是

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