时,名称空间可能处于不同的位置
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>
每次
您需要在此处使用前瞻。
<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>
您可以用"<message><control_timestamp>"
替换"<message.*<control_timestamp>"
。那么您的输出就准备好了。