我试图在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
任何指导都是适用的!
答案 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
。