java正则表达式不能匹配

为什么不行,在线工具里面测试就行。。

第1个回答  2015-07-15
你这个正则表达式“\\+{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

本回答被提问者和网友采纳
相似回答