因此,我正在制作一个正在使用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);
答案 0 :(得分:2)
我建议尝试一下:
(?<!src=[\"\'])((http(s)?:\/\/(www\.)?|(www\.))[\/a-zA-Z0-9%\?\.\-]*)(?=$|<|\s)
我相信这应该抓住http(s)和www。