【发布时间】:2017-02-15 19:54:18
【问题描述】:
我有一个在 java 中应该如下所示的输入字符串:String input = add entity <a-zA-Z>,<a-zA-z>
现在我想检查给定的字符串是否具有正确的格式。如果是这样,我想得到手的话。
我已经有检查部分了
boolean foo(String input) {
Pattern pattern = Pattern.compile("add entity [a-zA-Z]*[,][a-zA-Z]*");
Matcher matcher = pattern.matcher(input);
return matcher.matches();
}
我在这里发现了其他几个问题,他们已经解决了类似的问题
if(matcher.find()) {
System.out.println(matcher.group(1));
}
但如果我这样做,控制台总是会抛出异常:
Exception in thread "main" java.lang.IndexOutOfBoundsException: No group 1
有人对我如何解决这个问题有建议吗? 非常感谢你们。
【问题讨论】:
-
String.matches#方法做同样的事情。由于模式匹配整个字符串 + 没有捕获组 --> group[1] 将是错误的。