在JavaScript中,我有以下几点:JavaScript和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>");
}
它取代所有输入字符串的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中的任何比赛,即使是相同的输入字符串。我是否需要改变模式中的某些内容,或者发生了什么?
对不起,offtopic,但使用正则表达式解析HTML标记为不安全和EMM ..难看。 – 2016-09-07 07:41:33