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#findたり、コマンドを実行したりしていません。Matcher#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 に答える