我的输入字符串是:
<?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>", "");
然而,它不起作用。
在打印最终到控制台时,它仍然与inputString相同。
问题是什么?
答案 0 :(得分:2)
您不想使用正则表达式替换。只需使用简单的replace
方法,代码就可以运行。在这种情况下,您使用的字符串文字将是正确的。
答案 1 :(得分:2)
搜索部分是正则表达式,因此您需要转义由正则表达式解释为特殊字符的字符(例如?
)。
令人讨厌的是,您还必须转义转义符,以便它不会被解释为String中特殊字符(如\n
)的转义序列。这意味着您需要将\\?
放在?
:
String output = inputString.replaceFirst("<\\?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"\\?><tag1>", "");
或者,由于字符串不太可能出现多次,因此您可以使用replace()
的{{1}}方法。此方法不使用正则表达式,因此您无需转义任何内容:
String