【问题标题】:How to parse string to give certain piece of text如何解析字符串以给出某些文本
【发布时间】:2015-10-22 08:06:12
【问题描述】:

我有以下文字:

/explanation/NodeExplanations/NodeExplanation[ID='/Temporary/EIC/EICWorksheetPP/Line2Sum']/ExplanationText

/explanation/NodeExplanations/NodeExplanation[ID='/Return/ReturnData/Summation/Line2Sum']/ExplanationText

我怎样才能解析这个给我:

/Temporary/EIC/EICWorksheetPP/Line2Sum

/Return/ReturnData/Summation/Line2Sum

如何在 Java 中实现这一点? 我可以使用正则表达式、xpath、字符串表达式或任何最有效的表达式。任何帮助或帮助将不胜感激。

【问题讨论】:

  • wawek 向您展示了一种可能性。除此之外,尝试用正则表达式介绍自己。
  • @StefanBeike 这个问题看起来很适合正则表达式解决方案
  • 正则表达式可能如下所示:Regex101 Example
  • 你可以用正则表达式来做到这一点......但 indexOf 在 java 中更有效......阅读这个有趣的article

标签: java regex parsing xpath


【解决方案1】:

如果您的字符串始终具有这种格式,那么您可以通过以下方式简单地完成此操作:

String s = "/explanation/NodeExplanations/NodeExplanation[ID='/Temporary/EIC/EICWorksheetPP/Line2Sum']/ExplanationText";
System.out.println(s.substring(s.indexOf("[ID='")+5, s.indexOf("']")));

【讨论】:

  • 工作就像一个魅力!谢谢。问题,“5”是干什么用的?我想了解你在这里做了什么
  • 尝试在没有 5 的情况下执行它,你会发现 ;) 它只是代表 [ID=' 长度的数字 - 我们不希望在获取的子字符串中包含的部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-16
相关资源
最近更新 更多