0

我尝试使用正则表达式提取值,但是当我尝试打印输出时出现此异常:

Exception in thread "Main Thread" java.lang.IllegalStateException: No match found
    at java.util.regex.Matcher.group(Matcher.java:468)
    at TEST.main(TEST.java:21)

这是我的代码:

import java.util.ArrayList;
import java.util.List;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TEST {
    /**
     * @param args
     */
    public static void main(String[] args) {
        String string = "10/06/2013 01:45";
        Pattern pattern = Pattern.compile("([0-9]{1,})/([0-9]{1,})/([0-9]{4}) ([0-9]{1,}):([0-9]{1,})");
        Matcher matcher = pattern.matcher(string);

        System.out.println(matcher.group(1)+"\n"+matcher.group(2)+"\n"+matcher.group(3)+"\n"+matcher.group(4)+"\n"+matcher.group(5)+"\n");
    }
}

为什么这段代码不起作用?

4

1 回答 1

4

你从来没有打电话match()find()打电话之前group(int)。异常消息通过说该方法在非法状态下被调用来描述这一点——它在处理输入之前无法告诉您是什么group(1)

于 2013-06-17T17:51:57.873 回答