【问题标题】:Replacing Substring in Java在 Java 中替换子字符串
【发布时间】:2015-06-25 23:06:43
【问题描述】:

我在 Java 中有一种情况,我正在读取 String 中的文件内容。是这样的——

String S = "<name>source</name> <value>NB_System</value> </nameValue> <nameValue> <name>timestamp</name> <value>2015-6-25 22:39:41:455</value> </nameValue> <nameValue> <name>TTL</name> <value>0</value> </nameValue>"

我想从字符串中删除时间戳 - timestamp&lt;/name&gt; &lt;value&gt;2015-6-25 22:39:41:455&lt;/value&gt;

时间戳在将结果与主副本进行比较时产生问题。如何去掉这里的时间戳?

【问题讨论】:

  • ... 解析,查找索引,然后调用String.substring(...)?你试过什么代码?
  • 您的文本看起来像 XML。为什么不使用 XML 解析器并删除不需要的节点或它们的内容?还有regex is not best tool to parse XML.

标签: java regex string matcher


【解决方案1】:

如果你想用它的值去掉标签时间戳,你可以使用这样的代码:

S = S.replaceAll("<name>timestamp.*?<\/value>", "");

另一方面,如果你只是想去掉时间戳的值标签,你可以使用:

S = S.replaceAll("<name>timestamp.*?<\/value>", "<name>timestamp</name>");

【讨论】:

  • 更正:S = S.replaceAll("timestamp.*?", "");
【解决方案2】:
S = S.replaceAll("<name>timestamp</name>[^<]*<value>[^<]*</value>", "");

【讨论】:

    猜你喜欢
    • 2015-05-31
    • 2023-03-25
    • 1970-01-01
    • 2018-03-02
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多