PHP正则表达式找到链接

时间:2017-03-23 16:45:07

标签: php regex

因此,我正在制作一个正在使用bbcode支持的论坛上的正则表达式。这个正则表达式假设捕获所有以https,http和www开头的链接并将它们链接到链接。

目前它捕获所有https和http但不捕获www。我无法弄清楚如何获取以www。

开头的那些

另外请记住,如果链接已经在bbcode中,则不应该在此正则表达式中捕获。

return preg_replace('/(?<!src=[\"\'])(http(s)?:\/\/(www\.)?[\/a-zA-Z0-9%\?\.\-]*)(?=$|<|\s)/','<a href="$1">$1</a>', $text);

1 个答案:

答案 0 :(得分:2)

我建议尝试一下:

(?<!src=[\"\'])((http(s)?:\/\/(www\.)?|(www\.))[\/a-zA-Z0-9%\?\.\-]*)(?=$|<|\s)

我相信这应该抓住http(s)和www。