In JavaScript, ho il seguente:Differenze nei modelli regex tra JavaScript e Java?
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>");
}
Esso sostituisce tutti gli URL nella stringa di input con una versione del URL che ha un tag di ancoraggio avvolto attorno ad esso per trasformarlo in un link. Sto cercando di duplicare questa funzionalità in Java con la seguente funzione:
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>");
}
Tuttavia, mentre funziona bene in JavaScript non trova nessuna corrispondenza in Java, anche per la stessa stringa di input. Devo cambiare qualcosa nel modello o cosa sta succedendo?
Scusate offtopic, ma usando espressioni regolari per analizzare i tag HTML non è sicuro e emm .. brutto. –