我已经查看了stackoverflow for preg_replace解决方案并偶然发现了一些但对我的问题没有帮助。
我试图用另一个字符串替换部分网址但没有欢乐。
这就是我所做的
String htmlString = "http://localhost/web/test/11/soap/testserver.php";
Pattern patt = Pattern.compile("http://(.*)/soap/testserver.php");
Matcher m = patt.matcher(htmlString);
StringBuffer sb = new StringBuffer(htmlString.length());
String text = "local.test";
while (m.find()) {
m.appendReplacement(sb, Matcher.quoteReplacement(text));
}
m.appendTail(sb);
System.out.println(sb.toString());
我得到一个输出" local.test.php"但我喜欢" http://local.host/soap/testserver.php"
我做错了什么
提前致谢。
答案 0 :(得分:0)
只需匹配字符串/soap
之前的所有字符,然后从/soap
捕获所有字符。在替换部分中,使用字符串\1
http://local.host
正则表达式:
^.*(/soap.*)$
替换字符串:
http://local.host$1
代码:
System.out.println("http://localhost/web/test/11/soap/testserver.php".replaceAll("^.*(/soap.*)$", "http://local.host$1"));
输出:
http://local.host/soap/testserver.php