繁体   English   中英

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

[英]Create a regex pattern to obtain text between @ and ,

我正在尝试创建一个正则表达式模式来获取以下@和,之间的文本。 例如,文本是这样的:

Hello @bob, my name is @jack, 

我想要做的是从字符串中获取名字bobjack 在其他地方阅读我相信正则表达式(PHP)是最好的选择。 我已经创建了自己的模式,但是它不起作用。 我的代码如下。 comment变量包含文本。

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

任何帮助,将不胜感激。

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

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

(?<=@)[^,]+

正则表达式演示

正则表达式说明

  • (?<=@) -一种后向检查,用于检查要匹配的文本之前是否有@符号...
  • [^,]+ -匹配1个或多个除逗号以外的其他字符的取反字符类

IDEONE演示

$re = "/(?<=@)[^,]+/"; 
$str = "Hello @bob, my name is @jack,"; 
preg_match_all($re, $str, $matches);
print_r($matches);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM