我想从我的响应中删除以下行:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
我使用了这个正则表达式:
String newString = text.replaceAll("(?s)<xml>","");
但对我不起作用,我应该改变什么?
klr1opcd1#
有两种方法:如果你确信XML格式很好(一行,一个元素),并且这个标签总是出现在第一行,那么只需删除整行。由于这需要格式良好的XML,因此最好采用您建议的基于Regex的解决方案。尝试使用(<\?xml.*?\?>)正则表达式。请参阅Regex101中的演示。在Java中,请注意转义字符:
(<\?xml.*?\?>)
String newString = text.replaceAll("(<\\?xml.*?\\?>)","");
wkyowqbh2#
使用regex,您可以从第一个标记开始获取XML,后面不带问号,如<[^\?]+参见regex。这将忽略<?xml>标记
<[^\?]+
<?xml>
2条答案
按热度按时间klr1opcd1#
有两种方法:如果你确信XML格式很好(一行,一个元素),并且这个标签总是出现在第一行,那么只需删除整行。
由于这需要格式良好的XML,因此最好采用您建议的基于Regex的解决方案。
尝试使用
(<\?xml.*?\?>)
正则表达式。请参阅Regex101中的演示。在Java中,请注意转义字符:wkyowqbh2#
使用regex,您可以从第一个标记开始获取XML,后面不带问号,如
<[^\?]+
参见regex。这将忽略
<?xml>
标记