Java Regex:替换字符串中的特定类型的url?

时间:2011-08-21 19:15:10

标签: java regex

示例输入:

"http://bits.wikimedia.org/w/extensions-1.17/MobileFrontend/stylesheets/webkit.css"

我的尝试:"http://.*?/stylesheets/webkit.css"找不到任何匹配

"http://""webkit.css"之间的网址部分是可变的

谢谢!

我的不好,我使用的是Java的replace()函数,而不是replaceFirst()或replaceAll()

1 个答案:

答案 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.cssreplacement之间的所有内容。