【问题标题】:Java Regex Replace NamespaceJava 正则表达式替换命名空间
【发布时间】:2014-09-30 15:07:09
【问题描述】:

正则表达式新手。

谁能告诉我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>

命名空间可能每次都在不同的位置

【问题讨论】:

标签: java regex replace


【解决方案1】:

您需要在此处使用前瞻。

<message.*?(?=<control_timestamp)

将匹配的字符替换为&lt;message&gt;

DEMO

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>

【讨论】:

    【解决方案2】:

    您可以将"&lt;message.*&lt;control_timestamp&gt;" 替换为"&lt;message&gt;&lt;control_timestamp&gt;"。那么你的输出就准备好了。

    【讨论】:

      猜你喜欢
      • 2016-02-11
      • 1970-01-01
      • 2010-12-24
      • 1970-01-01
      • 1970-01-01
      • 2012-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多