需要java正则表达式从特定字符串中删除/替换XML元素

需要java正则表达式从特定字符串中删除/替换XML元素,java,regex,Java,Regex,我在获取正确的正则表达式时遇到问题。我将下面的xml作为字符串 <user_input> <UserInput Question="test Q?" Answer=<value>0</value><sam@testmail.com>" </user_input> 您需要将?放在第一组中,使其不贪婪,而且您不需要答案=*?: str1.replaceAll("<([^<]*?)>", "$1") str1.r

我在获取正确的正则表达式时遇到问题。我将下面的xml作为字符串

<user_input>
<UserInput Question="test Q?" Answer=<value>0</value><sam@testmail.com>"
</user_input>


您需要将
放在第一组中,使其不贪婪,而且您不需要
答案=*?

str1.replaceAll("<([^<]*?)>", "$1")

str1.replaceAll(
httpRequest.send(“msg=“+data+”&TC=“+TC”);
尝试这样做

虽然Java不支持可变宽度的look behinds,但您可以使用
{01000}
解决它,这应该足够了

请使用2个正则表达式或1个正则表达式和1个
replace
检查此方法。选择最适合的方法(我从第一个输入字符串中删除了
\n
换行符,以使用简单的
replace
显示缺陷):


String input=“你能详细说明一下“没有解决”吗?那么,你还想在
我只能删除这个内部应答属性。如果我的字符串包含一些其他有效的xml,比如它不应该触及该属性..答案的整体外部=”,它不应该这样做anything@samash因此,使用正则表达式不是解析
(X)的好选择HTML你可以考虑一个合适的解析器!我测试了它没有完全工作。它取代了用户输入的标签。问题是我们不必解析XML,因为我们是中间件,答案属性中的XML片段为终端系统造成了问题。所以有任何正则表达式可以解决我的问题吗?不,我们没有。选项来解析xml..但我很确定通过正则表达式可以做到这一点
str1.replaceAll("Answer=.*?<([^<]*)>", "$1");
str1.replaceAll("<([^<]*?)>", "$1")
String input = "<user_input><UserInput Question=\"test Q?\" Answer=<value>0</value><sam@testmail.com>\"\n</user_input>";
String st = input.replace("><", " ").replaceAll("(?<=Answer=.{0,1000})[<>/]+(?=[^\"]*\")", "");
String st1 = input.replaceAll("(?<=Answer=.{0,1000})><(?=[^\"]*\")", " ").replaceAll("(?<=Answer=.{0,1000})[<>/]+(?=[^\"]*\")", "");
System.out.println(st + "\n" + st1);
<user_input UserInput Question="test Q?" Answer=value0value sam@testmail.com"                                                                                                                                                                          
</user_input>  

<user_input><UserInput Question="test Q?" Answer=value0value sam@testmail.com"                                                                                                                                                                         
</user_input>