查找非法状态异常错误

时间:2014-07-07 19:33:11

标签: java regex eclipse illegalstateexception

我对java比较陌生,并开发了一个程序,它使用多个正则表达式从网页中查找某些值。但是,有时我遇到一个错误,指出:

 java.lang.IllegalStateException: No match found
        at java.util.regex.Matcher.group(Matcher.java:468)
        at java.util.regex.Matcher.group(Matcher.java:428)

我的代码包含很多正则表达式,我想知道Eclipse中是否有一种方法可以找到具体无法找到的模式。有没有办法找到哪行代码产生了错误?提前谢谢。

1 个答案:

答案 0 :(得分:2)

在从匹配器获取组之前进行检查,否则将导致以下异常:

java.lang.IllegalStateException: No match found

示例代码

if(matcher.find()){    // you can use while loop as well if there is more matches
     matcher.group(1);
}

Matcher#group()方法抛出了什么?

  

IllegalStateException如果尚未尝试匹配,或者上一次匹配操作失败。

Matcher#find()提出了什么:

  

尝试查找与模式匹配的输入序列的下一个子序列。

     

如果匹配成功,则可以通过start,end和group方法获得更多信息。