我将如何改变文本类似下面或包含其他任何文本的URL(HTTP FTP等)
去这个链接http://www.google.com (OFC堆栈溢出已经这样做了,在我的网站,这只是纯文本);
这个
去这个链接
<a href="http://www.google.com">www.google.com</a>
我想出了这个方法
public String transformURLIntoLinks(String text){
String urlValidationRegex = "(https?|ftp)://(www\\d?|[a-zA-Z0-9]+)?.[a-zA-Z0-9-]+(\\:|.)([a-zA-Z0-9.]+|(\\d+)?)([/?:].*)?";
Pattern p = Pattern.compile(urlValidationRegex);
Matcher m = p.matcher(text);
StringBuffer sb = new StringBuffer();
while(m.find()){
String found =m.group(1); //this String is only made of the http or ftp (just the first part of the link)
m.appendReplacement(sb, "<a href='"+found+"'>"+found+"</a>"); // the result would be <a href="http">"http"</a>
}
m.appendTail(sb);
return sb.toString();
}
问题是我已经试过比赛只有第一部分(“http”或“FTP”)的正则表达式。
我的输出变为: Go to this link <a href='http'>http</a>
它应该是这个
Go to this link <a href='http://www.google.com'>http://www.google.com</a>