为什么可以';java不能识别这个正则表达式吗?
我写了这个正则表达式:为什么可以';java不能识别这个正则表达式吗?,java,regex,Java,Regex,我写了这个正则表达式: ((http):\/\/\S*\(jpg | gif | png)) 这个正则表达式应该可以找到字符串中的每个图像链接 正如你所看到的,如果你点击下面的链接,它工作得很好 但是当我将它粘贴到java中,并转义所有的反斜杠并调用replaceAll(regex,string) 程序什么也找不到 String regex = "((http):\\/\\/\\S*\\.(jpg|gif|png))"; boxText.replaceAll(regex, "**$0**");
((http):\/\/\S*\(jpg | gif | png))
这个正则表达式应该可以找到字符串中的每个图像链接
正如你所看到的,如果你点击下面的链接,它工作得很好
但是当我将它粘贴到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
*/
}
我的假设是我错误地逃过了正则表达式,但我不确定。有什么想法吗?字符串是不可变的:表达式是匹配的,但值永远不会重新分配给replaceAll
boxText = boxText.replaceAll(regex, "**$1**");
字符串是不可变的:表达式是匹配的,但值永远不会重新分配给replaceAll
boxText = boxText.replaceAll(regex, "**$1**");
这个表达式产生的输出是什么?预期的输出是什么?这个表达式产生的输出是什么?预期的输出是什么?@ShaunWild你确定你看到的是更新后的代码(重建等)的输出吗?太直观了,我把你的代码粘贴到我的代码旁边,它们完全一样,但是你的有效而我的无效。。。我就用你的..:谢谢@ShaunWild您确定您正在查看更新代码(重建等)的输出吗?这太直观了,我将您的代码粘贴到我的代码旁边,它们完全相同,但您的代码有效,我的代码无效。。。我就用你的..:谢谢!