【发布时间】:2015-04-15 08:52:31
【问题描述】:
我有以下 XML:
<customer>
<name>Customer name</name>
<address>
<postalcode>94510</postalcode>
<town>Green Bay</town>
</address>
<phone>0645878787</phone>
</customer>
我想只使用正则表达式,用空字符串替换整个<address>..</address> 标签如果邮政编码是94510
我有
String s = "<the xml above here/>"
s = s.replace(source, target);
我只能控制“源”和“目标”。有没有正则表达式可以解决这个问题?
谢谢
【问题讨论】:
-
正则表达式不是正确的工具,因为 XML 不是常规语言。 Java 有 XML 处理工具;你为什么不想使用这些?
-
您可以在这里找到很多选项:tutorialspoint.com/java_xml/java_xml_parsers.htm。你完全确定你不能使用 XML 解析器,而只需要一个正则表达式吗?正则表达式是
(?s)<address>.*?<postalcode>94510</postalcode>.*?</address>\\s*,替换字符串是''。但是,如果您的 XML 格式不正确,您可能会得到意想不到的结果。 -
请注意,
replace接受常规字符串,replaceAll接受正则表达式。