Php 创建正则表达式模式以获取@和之间的文本,

Php 创建正则表达式模式以获取@和之间的文本,,php,regex,Php,Regex,我正在尝试创建一个正则表达式模式,以获取介于以下@和之间的文本,。例如,文本如下所示: Hello @bob, my name is @jack, 我要做的是从字符串中取出姓名bob和jack。阅读其他文章,我相信regex(PHP)是最好的选择。我已经创建了自己的模式,但它不起作用。我的密码如下。comment变量包含文本 $pat = '/\@\,/'; preg_match($pat, $comment, $matches); echo $matches[1]; 任何帮助都将不胜感激

我正在尝试创建一个正则表达式模式,以获取介于以下@和之间的文本,。例如,文本如下所示:

Hello @bob, my name is @jack, 
我要做的是从字符串中取出姓名
bob
jack
。阅读其他文章,我相信regex(PHP)是最好的选择。我已经创建了自己的模式,但它不起作用。我的密码如下。comment变量包含文本

$pat = '/\@\,/';
preg_match($pat, $comment, $matches);
echo $matches[1];

任何帮助都将不胜感激。

您的正则表达式不起作用,因为它只匹配
@、
序列。你想要介于两者之间的东西

您可以使用以下正则表达式:

(?<=@)[^,]+

您的正则表达式不工作,因为它只匹配
@、
序列。你想要介于两者之间的东西

您可以使用以下正则表达式:

(?<=@)[^,]+

酷,这是最后一件事如果我想把它们存储在一个变量中,比如说$v1=bob,$v2=Jack每次发现一个新名称时创建一个新变量,我该怎么做呢?我认为数组存储多个值非常方便。如果要使用单独的变量,请事先声明它们,并在循环中分配
$matches
中的值。我正在尝试这样做,基本上这些名称将用于搜索数据库和检索用户信息。如果我想把它们存储在一个变量中,比如说$v1=bob,$v2=Jack每次发现一个新名称时创建一个新变量,那么我该怎么做呢?我认为数组存储多个值非常方便。如果要使用单独的变量,请事先声明它们,并在循环中分配
$matches
中的值。我正在尝试这样做,基本上这些名称将用于搜索数据库和检索用户信息。我现在尝试的似乎不是鲍勃就是b加a