我发现文本链接并将其包装在A标签中时有点困惑。
到目前为止,我正在使用此/ [\w]*\.[a-z]{2,}/i
来查找适用于此类链接的链接,stackoverflow.com但它错过了www。或任何事前的事。
总结一下,我正在尝试找到所有链接并包装在A标签中。非文本包含协议部分(http(s)://)或端口部分,这使得它更难。
答案 0 :(得分:1)
$text = preg_replace('@((?:http(?:s)?://)?(?:www)?([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@', '<a href="$1">$1</a>', $text);
答案 1 :(得分:1)
现在找不到good duplicate,所以尝试一些简单的方法,比如重复前缀:
/\b(\w[\w-]+\.)+[a-z]{2,}\b/i
我不会用这个;误报太多了。但是你并没有真正限制范围。替代方案包括例如固定的TLD列表,使其更加具体。