php – 正则表达式在字符串中查找#标签 – 不带初始#标签符号

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

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

我想选择#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);

任何指导都是适用的!

解决方法:

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

preg_replace返回两个值,一个带有#hashtag值的$0和带有#标签值的$1 – 没有#符号.

在这里测试(选择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);

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

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...