Я знаю, что эти вопросы часто задают, и Kelly Chan
действительно дал ответ, который мне подходит, однако есть небольшая проблема, которая, я надеюсь, сообщество сможет мне помочь.
Например, если пользователь вводит это:
Please visit www.google.com
Тогда я хочу преобразовать это в
Please visit <a href="http://www.google.com">www.google.com</a>
ПРИМЕЧАНИЕ : исходный текст содержит только www.google.com
, но я каким-то образом обнаружил, что перед ним должен стоять http://
. поэтому ссылка становится <a href="http://www.google.com">www.google.com</a>
. Если ссылка http://www.google.com
, тогда мне просто нужно обернуть ее вокруг <a href>
.
РЕДАКТИРОВАТЬ : Kelly Chan
пересмотрела свой ответ, и это работает. Ниже приведено решение.
Pattern patt = Pattern.compile("(?i)\\b((?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/)(?:[^\\s()<>]+|\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\))+(?:\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:\'\".,<>???“”‘’]))");
Matcher matcher = patt.matcher(this.mytext);
if(matcher.find()){
if (matcher.group(1).startsWith("http://")){
return matcher.replaceAll("<a href=\"$1\">$1</a>");
}else{
return matcher.replaceAll("<a href=\"http://$1\">$1</a>");
}
}else{
return this.mytext
}