Java 替换包含引号的字符串中的子字符串

Java 替换包含引号的字符串中的子字符串,java,string,Java,String,我的输入字符串是: <?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.

我的输入字符串是:

<?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>", "");
stringfinal=inputString.replaceFirst(“,”);
但是,它不起作用

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


问题是什么?

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

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

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

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

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

搜索部分是一个正则表达式,因此需要对正则表达式解释为特殊字符的字符进行转义(例如

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

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

replaceFirst接受正则表达式,@assylias:不知道replaceFirst接受正则表达式。谢谢replaceFirst接受正则表达式,@assylias:不知道replaceFirst接受正则表达式。谢谢