我正在使用第三方数据服务,它允许输入Java正则表达式模式。我无权访问该代码。是否有正则表达式模式允许我修改字符串到位?我基本上是在获取URL但需要用另一个地址替换URL。例如,我将进入:http://10.12.344.211/someimage.png
,我想将 10.12.344.211 替换为另一个地址。
是否使用正则表达式进行某种类型的查找/替换?
答案 0 :(得分:0)
如果此IP地址已修复并且它是String的一部分,那么您可以使用{/ 1}}方法
replace
输出:
String someData = "address of this image is http://10.12.344.211/someimage.png";
System.out.println(someData);
someData=someData.replace("http://10.12.344.211", "http://127.0.0.1");
System.out.println(someData);
否则,您可以将replaceAll与address of this image is http://10.12.344.211/someimage.png
address of this image is http://127.0.0.1/someimage.png
一起用作正则表达式。
"http://(\\d{1,3}[.]){3}\\d{1,3}"
代表数字\\d
范围[0-9]
代表点字面[.]
或{x}
代表发生次数答案 1 :(得分:0)
不幸的是,没有URL.setHost
方法。
但是,确实需要正则表达式。
例如:
try {
URL firstUrl = new URL("http://10.12.344.211/someimage.png");
URL newURL = new URL(
// note the new String ends with "212"
firstUrl.toString().replace(firstUrl.getHost(), "10.12.344.212")
);
System.out.println(newURL);
}
catch (MalformedURLException mue) {
mue.printStackTrace();
}
输出:
http://10.12.344.212/someimage.png