大家好 我有一个可能包含网址的字符串文本(此文本来自表单文本区域) 我想检测这些网址并用标记围绕它们,以便它们在html页面中表示为链接 这样做的最佳方式是什么?
答案 0 :(得分:1)
使用正则表达式。
(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))
从这里查看更多信息 http://daringfireball.net/2010/07/improved_regex_for_matching_urls
public boolean isURL(String s){
return s.matches(" (?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'\".,<>?«»\“\”\‘\’]))");
}
答案 1 :(得分:1)
这是一个很难做到的复杂问题,主要是因为有很多字符在URL中有效,而你常常在其中看到这些字符。
http://www.codinghorror.com/blog/2008/10/the-problem-with-urls.html
编辑:daringfireball.net链接考虑了部分内容,但您可以在博文中了解权衡。