【问题标题】:Regular expression in java for parsing classname from fully qualified namejava中用于从完全限定名解析类名的正则表达式
【发布时间】:2014-07-29 10:38:42
【问题描述】:

谁能帮我在java中使用正则表达式从完全限定的名称中解析类名。

这样解析的字符串:“com.xxx.xxx.ClassName 0.0.2

我必须在 java 中使用 Pattern 和 Matcher 来获取 className

请帮忙

【问题讨论】:

  • 你有什么尝试吗?我们可以看看你的方法吗?您是否必须使用正则表达式(如果您的字符串是源代码,那么解析器可能会更好)?
  • 它只是一个版本字符串
  • 你有没有尝试过?您是否阅读过 Pattern 类的 javadoc ......它提供了正则表达式语法的摘要?如果这太难理解了,你找过正则表达式教程吗?
  • 你需要什么样的解析?您是否只想从源 com.xxx.xxx.ClassName 0.0.2 检索字符串 com.xxx.xxx.ClassName
  • 如果您能发布您想要解析的实际文本的示例、预期结果和解释为什么只会出现这样的结果会更好。

标签: java regex matcher


【解决方案1】:

您可以尝试下面的代码,它在模式中使用正向前瞻,

String s = "com.xxx.xxx.ClassName 0.0.2";
Pattern p = Pattern.compile("\\w+(?= )");
Matcher m = p.matcher(s);
while (m.find()) {
System.out.println(m.group(0));
}

IDEONE

你可以试试下面的正则表达式,它使用前瞻和后瞻,

"(?<=\\.)[^.]*(?= )"

IDEONE

【讨论】:

  • 感谢 Avinash,它有效.. 感谢所有帮助我的人
猜你喜欢
  • 2014-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-09
  • 1970-01-01
  • 2011-11-13
  • 1970-01-01
相关资源
最近更新 更多