gpt4 book ai didi

java - 为什么java不能识别这个正则表达式?

转载 作者:行者123 更新时间:2023-11-30 07:13:17 25 4
gpt4 key购买 nike

我写了这个正则表达式:

((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

*/

}

我的假设是我错误地转义了正则表达式,但我不确定。有什么想法吗?

最佳答案

字符串是不可变的:表达式是匹配的,但值永远不会重新分配给 replaceAll

的结果
boxText = boxText.replaceAll(regex, "**$1**");

关于java - 为什么java不能识别这个正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19619198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com