示例输入:
"http://bits.wikimedia.org/w/extensions-1.17/MobileFrontend/stylesheets/webkit.css"
我的尝试:"http://.*?/stylesheets/webkit.css"
找不到任何匹配
"http://"
和"webkit.css"
之间的网址部分是可变的
谢谢!
我的不好,我使用的是Java的replace()函数,而不是replaceFirst()或replaceAll()
答案 0 :(得分:3)
一个解决方案使用群组:
String input = "http://bits.wikimedia.org/w/extensions-1.17/" +
"MobileFrontend/stylesheets/webkit.css";
String replacement = "example.com";
String result = input.replaceAll("(http://).*?(/stylesheets/webkit\\.css)",
"$1" + replacement + "$2");
结果将等于http://example.com/stylesheets/webkit.css
。
另一个选项使用环顾四周:
String result = input.replaceAll("(?<=http://).*(?=/stylesheets/webkit\\.css)",
replacement);
表示“用http://
替换/stylesheets/webkit.css
和replacement
之间的所有内容。