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接受正则表达式。谢谢