使用正则表达式替换URL到位?

时间:2013-12-06 19:40:36

标签: java regex

我正在使用第三方数据服务,它允许输入Java正则表达式模式。我无权访问该代码。是否有正则表达式模式允许我修改字符串到位?我基本上是在获取URL但需要用另一个地址替换URL。例如,我将进入:http://10.12.344.211/someimage.png,我想将 10.12.344.211 替换为另一个地址。

是否使用正则表达式进行某种类型的查找/替换?

2 个答案:

答案 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