在Java中,我有一个匹配常规表达式\\d+[.]\\d+[.]\\d+[.]\\d | \\d+[.]\\d+[.]\\d
的匹配器,因为我希望它验证1.1.0.0
或1.1.0
之类的内容。但是它不断抛出"Illegal State Exception: No match found"
我知道这是因为我的RegEx不行,但在阅读了示例和文档后,我不知道错误。
已编辑:这是代码中无效的部分。
Matcher versionPattern = Pattern.compile("\\d+[.]\\d+[.]\\d+[.]\\d | \\d+[.]\\d+[.]\\d").matcher(name);
if(versionPattern.find()){
int i = 0; boolean found= false;
while ( i < listOfExistingFiles.length && !found){
if(listOfExistingFiles[i].getName().contains(versionPattern.group().toString())){
found = true;
System.out.println("Running " + listOfExistingFiles[i].toString());
runSqlScriptFrom(listOfExistingFiles[i].toString());
}
i++;
}
if(!found)
System.out.println("Could not find the corresponding file. Assuming it is not required." );
}
这是我不知道如何处理的确切部分versionPattern.find()
一直在抛出false
。