1

我最近一直在学习正则表达式,想知道这是否可能:

我正在提取推特供稿并且可以访问推文,但是当我想在我的网站上显示这些推文时 - 链接、@回复和哈希标签都未链接。所以我开始了将它们联系起来的过程。我正在回复@回复并有一个问题:

这是我的正则表达式:

$content = '@jason is awesome.';
$reply = '/@(\w+)/';

if(preg_match($reply, $content, $matches)){
  var_dump($matches[0]);
}

所以这将返回'@jason',但我想知道是否有办法用@搜索它,但只返回它后面的内容 - 只是'jason'。如何使用正则表达式做到这一点?

4

3 回答 3

0

正如 Double 提到的, $matches[1] 会给你想要的。$matches[0] 很特殊,它包含整个匹配字符串。列表中的后续项目是捕获的组。

于 2012-05-15T16:39:00.190 回答
0

文档来看,$matches[1]它将具有第一个反向引用,在您的情况下应该是 jason。你可以在这里测试:http: //www.solmetra.com/scripts/regex/index.php

于 2012-05-15T16:41:24.010 回答
0

阅读#$^&*手册,我的意思是……它就在那儿……

如果提供了匹配项,则将其填充为搜索结果。$matches[0] 将包含与完整模式匹配的文本, $matches[1] 将包含与第一个捕获的带括号的子模式匹配的文本,依此类推。

图片值一千字

于 2012-05-15T16:42:17.170 回答