1

我的输入字符串是:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><tag1><tag2></tag2></tag1>

我想替换以下部分:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><tag1>

带空格。

所以我写道:

String final = inputString.replaceFirst("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><tag1>", "");

但是,它不起作用。

在将 final 打印到控制台时,它仍然与 inputString 相同。

问题是什么?

4

2 回答 2

2

您不想使用正则表达式替换。只需使用简单的replace方法,代码就可以工作。在这种情况下,您使用的字符串文字将是正确的。

于 2012-08-30T14:16:27.907 回答
2

搜索部分是一个正则表达式,因此您需要转义被正则表达式解释为特殊字符的字符(例如?)。

令人讨厌的是,您还必须转义转义字符,以便它不会被解释为\n字符串中特殊字符(如 )的转义序列。这意味着你需要把\\?你有的地方?

String output = inputString.replaceFirst("<\\?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"\\?><tag1>", "");

或者,由于字符串不可能多次出现,您可以使用 的replace()方法String。此方法不使用正则表达式,因此您无需转义任何内容:

String output = inputString.replace("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><tag1>", "");
于 2012-08-30T14:17:53.490 回答