は、私は次のようにありますJavaScriptとJava間の正規表現パターンの違いは? 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>");
}
しかし、それは同じであっても、入力文字列のため、Javaでの任意の一致を見つけることができませんJavaScriptで正常に動作している間。パターンや何が起こっているのかを変更する必要がありますか?
offtopicのため申し訳ありませんが、HTMLタグを解析するための正規表現を使用することは醜い...危険なおよびEMMです。 –