Regex的新手。
有谁能告诉我java正则表达式替换代码是什么来替换以下XML
<?xml version="1.0" encoding="iso-8859-1"?><message xmlns="http://www.origoservices.com"> <m_control xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.origoservices.com"><control_timestamp>2014-09-30T14:39:05.6402</control_timestamp>........</message>
并制作
<?xml version="1.0" encoding="iso-8859-1"?><message><control_timestamp>2014-09-30T14:39:05.6402</control_timestamp>........</message>
每次名称空间都可能位于不同的位置
答案 0 :(得分:0)
你需要在这里使用前瞻。
<message.*?(?=<control_timestamp)
将匹配的字符替换为<message>
String src = "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?><message xmlns=\"http://www.origoservices.com\"> <m_control xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"http://www.origoservices.com\"><control_timestamp>2014-09-30T14:39:05.6402</control_timestamp>........</message>";
String out = src.replaceAll("<message.*?(?=<control_timestamp)", "<message>");
System.out.println(out);
<强>输出:强>
<?xml version="1.0" encoding="iso-8859-1"?><message><control_timestamp>2014-09-30T14:39:05.6402</control_timestamp>........</message>
答案 1 :(得分:0)
您可以将"<message.*<control_timestamp>"
替换为"<message><control_timestamp>"
。那么你的输出就准备好了。