私はこの正規表現を書きました:
((http):\/\/\S*\.(jpg|gif|png))
この正規表現は、文字列内のすべての画像リンクを見つける必要があります
ご覧のとおり、下のリンクをクリックすると正常に動作します。
http://rubular.com/r/FYwP8Aprdb
しかし、それを Java に貼り付けてバックスラッシュをすべてエスケープし、replaceAll(regex, string); を呼び出すと、
プログラムは何かを見つけることができませんか?
String regex = "((http):\\/\\/\\S*\\.(jpg|gif|png))";
boxText.replaceAll(regex, "**$0**");
上記のコードは、文字列内のすべての画像を取得し、それを$0にカプセル化する必要がありますが、プログラムを実行してテストしても何も起こりません。
public class SSCCE {
public static void main(String[] args) {
String boxText = "http://www.desibucket.com/db2/01/26039/26039.jpg";
String regex = "((http):\\/\\/\\S*\\.(jpg|gif|png))";
boxText.replaceAll(regex, "**$1**");
System.out.println(boxText);
}
/* output
http://www.desibucket.com/db2/01/26039/26039.jpg
*/
}
私の仮定は、正規表現を間違ってエスケープしたということですが、よくわかりません。何か案は?