你这个正则表达式“\\+{2,}”的意思是要匹配的字符串仅由“+”构成,且长度在 2 及以上。而你输入的字符串“aaa++++++++”中除了加号还有 a,而且 matches 方法是全词匹配,所以是 false。
追问
那为什么这个就行,因为matches是全词匹配?
追答对,所以他显示的匹配结果只是加号的那一串,不包括 a。如果不想全词匹配的话,可以使用 find() 方法,只要找到字符串中的某一部分匹配就会返回 true。比如
Pattern p = Pattern.compile("\\+{2,}");
Matcher m = p.matcher("aaa++++++++");
System.out.println(m.find());
System.out.println(m.matches());
输出结果是
true
false
本回答被提问者和网友采纳