我正在尝试用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 举报,一经查实,本站将立刻删除。