import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test { public static void main(String[] args) {
Pattern p = Pattern.compile("[a-z](3)");
Matcher m = p.matcher("efg");
p(m.matches());
}

public static void p(Object o){
System.out.println(o);
}
}应该输出true吧,视频上是这样的结果
我用Eclipse万年不变的false,怎么回事啊
难道我代码写错了吗

解决方案 »

  1.   

    楼主想匹配3个字符 ?要用{}
    改成这样试试  Pattern p = Pattern.compile("[a-z]{3}"); 
      

  2.   

    你的正则表达式限制数量写错了,不能用小括号。要用大括号Pattern p = Pattern.compile("[a-z](3)"); 
    改成 Pattern p = Pattern.compile("[a-z]{3}"); 
      

  3.   

    Pattern p = Pattern.compile("[a-z](3)"); 
    小括号改成带括号啊,亲爱的楼主!
      

  4.   

    结果为true了  谢谢
    我简直想跪下来亲吻三位的脚趾~~~~~~
      

  5.   


    () 表示捕获组,符合语法规则,当然能编译通过比如楼主的正则"[a-z](3)",可以匹配“a3”,“x3”这样的单个字母后面跟3这样的字符串
      

  6.   

    因为会把你的小括号也当成一个字符进行匹配!所以能通过编译! 但匹配不能成功所以输出false