以下是我目前的进展:
/(^|\s)(http:\/\/(\S+)(?!(.png|.gif|.jpg)($|\.\s|\.$|\s)))($|\.\s|\.$|\s)/i
我将其替换为以下内容:
'$1<a href="$2">$2</a>$6'
有时候,我的用户会输入类似这样的内容:http://google.com。 <- 我如何避免包含URL中的末尾句点而不解析其他在URL中的句点?
另外,如果你想知道.gif .png等是用来干什么的,我正在解析图像以自动创建img标签。
编辑: 这是为PHP而做的。
这是一个论坛,用户发布很多帖子,其中包括链接。它可以成功地处理除URL后面的标点符号之外的所有情况。
第二次编辑: 解析可能是错误的词。我不想删除标点符号,只是将其与URL分开,以便向我的用户显示可工作的链接。
第三次编辑: http://daringfireball.net/2010/07/improved_regex_for_matching_urls 我还没有完全测试,但它似乎有效。我会在测试之后把它作为解决方案。或者如果有人想得到积分,请随意测试,我会投票支持你的解决方案。