public static void main(String[] args) {
Pattern p = Pattern.compile("[A-Z]*");
Matcher matcher = p.matcher("CSE");
System.out.println(matcher.group());
}
为什么上面的代码会引发 java.lang.IllegalStateException ?如何匹配任意数量的大写字母?
您需要调用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());
}
}
你必须先打电话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());
}
}