微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐