public static void main(String[] args) {
Pattern p = Pattern.compile("[A-Z]*");
Matcher matcher = p.matcher("CSE");
System.out.println(matcher.group());
}
为什么obove代码会引发java.lang.IllegalStateException?我如何匹配任意数量的大写字母?
答案 0 :(得分:3)
您需要致电Matcher.find()
以启动正则表达式匹配过程。
public static void main(String[] args)
{
Pattern p = Pattern.compile("[A-Z]*");
Matcher matcher = p.matcher("CSE");
while (matcher.find()) {
System.out.println(matcher.group());
}
}
答案 1 :(得分:1)
在致电matcher.matches();
matcher.group());
matcher.group()
为您提供上一场比赛确定的子字符串。
你的模式应该是[A-Z]+
。这将打印大写字母序列的所有匹配
public static void main(String[] args) {
Pattern p = Pattern.compile("[A-Z]+");
Matcher matcher = p.matcher("CSEsdsdWWERdfsdfSSEEfdD");
while (matcher.find()) {
System.out.println(matcher.group());
}
}