В JavaScript у меня есть следующее:
function replaceURLWithHTMLLinks(text) {
var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
return text.replace(exp,"<a href='$1'>$1</a>");
}
Он заменяет все URL в строке ввода на версию URL, которая имеет тег якоря, обернутый вокруг него, чтобы превратить его в ссылку. Я пытаюсь продублировать эту функциональность в Java с помощью следующей функции:
private String replaceURLWithHTMLLinks(String text) {
String pattern = "/(\\b(https?|ftp|file):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;]*[-A-Z0-9+&@#\\/%=~_|])/i";
return text.replaceAll(pattern, "<a href=\"$1\">$1</a>");
}
Однако, хотя она отлично работает в JavaScript, она не находит совпадений в Java, даже для той же входной строки. Нужно ли мне изменить что-то в шаблоне, или что происходит?