加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

PHP将纯文本转换为主题标签链接

发布时间:2020-05-25 09:12:11 所属栏目:PHP 来源:互联网
导读:我正在尝试使用 PHP将用户的帖子(文本)转换为hashtag可点击链接. 根据我的发现,主题标签应该只包含字母数字字符. $text = Testing#one #two #three.test;$text = preg_replace(/#([0-9a-zA-Z]+)/i, a href=/hashtag/$1#$1/a, $text); 它将链接放在所有(#one

我正在尝试使用 PHP将用户的帖子(文本)转换为hashtag可点击链接.

根据我的发现,主题标签应该只包含字母数字字符.

$text = 'Testing#one #two #three.test';
$text = preg_replace('/#([0-9a-zA-Z]+)/i','<a href="/hashtag/$1">#$1</a>',$text);

它将链接放在所有(#one #two #three)上,但我认为#one不应该转换,因为它与另一个字母数字字符相邻,如何调整reg-ex来修复它?

第三个也没关系,它只匹配#three,我认为是正确的.

对于非空白字符,您可以将正则表达式修改为负向后观,如下所示:
(?<!S)#([0-9a-zA-Z]+)

工作正则表达式示例:

http://regex101.com/r/mR4jZ7

PHP:

$text = preg_replace('/(?<!S)#([0-9a-zA-Z]+)/',$text);

编辑:
并使表达式与其他语言(非英语字符)兼容:

(?<!S)#([0-9p{L}]+)

工作范例:

https://regex101.com/r/Pquem3/1

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读