如何在java中执行preg_replace_all

时间:2014-09-02 22:55:13

标签: java regex

我有wsdl文件,网址分散在各处,我喜欢用其他地方替换部分网址

例如,这里是wsdl文件的一部分

<definitions xmlns:tns="http://local.host/web/test/11/soap/testserver.php" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" name="DatixInterface" targetNamespace="http://local.host/web/test/11/soap/testserver.php">

我想将所有“http://local.host/web/test/11”替换为“http://web.server/”,因此它看起来像这样

<definitions xmlns:tns="http://web.server/soap/testserver.php" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" name="DatixInterface" targetNamespace="http://web.server/soap/testserver.php">

我可以使用php中的preg_replace_all轻松完成此操作,但我似乎无法在java中执行此操作。

(我的主要语言不是java,所以提前抱歉)

非常感谢任何帮助,并提前致谢

1 个答案:

答案 0 :(得分:1)

您可以使用简单的文本编辑器来完成此操作。

但是,您也可以使用 sed awk perl 。你可以在这里查看sed示例: http://www.brunolinux.com/02-The_Terminal/Find_and%20Replace_with_Sed.html

使用sed你可以这样做:

sed -i .bak 's#http://local.host/web/test/11#http://web.server/#' yourfile.wsdl

如果是 java ,您可以使用简单的string.replace轻松完成此操作:

public class Test{

    public static void main(String[] args) {
        String sentence = "<definitions xmlns:tns=\"http://local.host/web/test/11/soap/testserver.php\" xmlns:soap=\"http://schemas.xmlsoap.org/wsdl/soap/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\" xmlns=\"http://schemas.xmlsoap.org/wsdl/\" name=\"DatixInterface\" targetNamespace=\"http://local.host/web/test/11/soap/testserver.php\">";

        String str = sentence.replaceAll("http://local.host/web/test/11", "http://web.server/");
        System.out.println(str);
    }
}

顺便说一句,如果您想加载文件的内容并替换这些字符串,您可以使用好朋友 Apache commons

File file = new File("D:\\yourfile.wsdl");
String fileString = FileUtils.readFileToString(file);
String finalString = fileString.replaceAll("http://local.host/web/test/11", "http://web.server/");
FileUtils.writeStringToFile(file, finalString);