我对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中是否有一种方法可以找到具体无法找到的模式。有没有办法找到哪行代码产生了错误?提前谢谢。
答案 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方法获得更多信息。