2

我有这个在 perl 中可以正常工作的正则表达式。但是在 java 中,运行此代码时出现异常。

    String procTime="125-23:02:01";
    String pattern = "([0-9]+)-([0-9]+):([0-9]+):([0-9]+).*";
    Pattern r = Pattern.compile(pattern);
    Matcher mt = r.matcher(procTime);
    String a = mt.group(0); // throws exception not fnd
    String d = mt.group(1);
4

1 回答 1

5

您没有在代码中调用Matcher#findMatcher#matches命令。以下将起作用:

String procTime="125-23:02:01";
String pattern = "([0-9]+)-([0-9]+):([0-9]+):([0-9]+).*";
Pattern r = Pattern.compile(pattern);
Matcher mt = r.matcher(procTime);
if (mt.find()) {
   String a = mt.group(0); // should work now
   String d = mt.group(1);
}
于 2013-10-22T10:56:23.463 回答