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

sha*_*ban 3 php regex

我正在尝试用PHP做这个,我只是想知道我对Regex并不好.

我正在尝试查找字符串中的所有主题标签,并将它们包装在twitter的链接中.为了做到这一点,我需要标签的内容,没有符号.

我想选择#hashtag- 没有前面的#=>只是为了返回hashtag

我想在一行中完成它,但我正在做一个preg_replace,然后是字符串替换,如下所示:

$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);
Run Code Online (Sandbox Code Playgroud)

任何指导都是适用的!

sha*_*ban 6

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

preg_replace返航两个数值,一个$0#hashtag价值,以及$1hashtag价值-没有#符号.

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

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

我的一个班轮是:

$string = preg_replace('/\B#([a-z0-9_-]+)/i', '<a href="https://twitter.com/hashtag/$1" target="_blank">$0</a> ', $string);
Run Code Online (Sandbox Code Playgroud)

编辑:我现在明白了.方括号( )周围添加的括号有效地返回$1变量.否则整个模式是$0.