正则表达式在字符串中查找主题标签 - 不带初始主题标签符号

时间:2017-07-22 22:54:46

标签: php regex

我试图在PHP中这样做,我只是想知道我对Regex并不是很好。

我试图找到字符串中的所有主题标签,并将它们包装在twitter的链接中。为了做到这一点,我需要标签的内容,而不是符号。

我想选择bson_t *query; query = BCON_NEW("timestamp", "{", "$gte", BCON_INT64(1460703944149), "$lt", BCON_INT64(1460703944683), "}", "userId", BCON_UTF8("manaf"), ); - 没有前面的#hashtag =>只是要返回#

我想在一行中执行此操作,但我正在执行hashtag,后跟字符串替换,如下所示:

preg_replace

任何指导都是适用的!

1 个答案:

答案 0 :(得分:6)

我正在使用正则表达式测试程序并找到答案。

$string = preg_replace('/\B#([a-z0-9_-]+)/i', '<a href="https://twitter.com/hashtag/$0" target="_blank">$0</a> ', $string); $string = str_replace('https://twitter.com/hashtag/#', 'https://twitter.com/hashtag/', $string); 返回了两个值,一个preg_replace带有$0值,#hashtag带有$1值 - 没有#符号。

在这里测试(选择preg_replace):http://www.phpliveregex.com/p/kOn

也许这与正则表达式本身有关,我不确定。希望这也有助于其他人。

我的一个班轮是:

hashtag

编辑:我现在明白了。方括号周围添加的括号$string = preg_replace('/\B#([a-z0-9_-]+)/i', '<a href="https://twitter.com/hashtag/$1" target="_blank">$0</a> ', $string); 有效地返回( )变量。否则整个模式为$1