今天早上看视频,刚接触到正则表达式
在看api的时候,有一段这样的程序:
Pattern pa = Pattern.compile("a*b");
Matcher m = pa.matcher("aaaaab");
System.out.println(m.matches());
System.out.println("aaaaab".matches("a*b"));
System.out.println(Pattern.matches("aaaaab","a*b"));
api上说第五句和第一至三句等效,但是我测试的结果却不一样:
true
true
false为什么啊?

解决方案 »

  1.   

    说错了 那段程序不是api上的,是我仿照api写的
      

  2.   

    Pattern的static方法matches,接受两个参数,第一个是要编译的正则表达式,第二个是要匹配的字符序列,你最后一句两个参数位置换过来,就会得到三个true的结果了。
      

  3.   

    第五句参数反了
    Pattern.matches("a*b", "aaaaab");
      

  4.   

    System.out.println(Pattern.matches("aaaaab","a*b")); 
    你顺序都反了啊 前面一个参数是正则 后面一个是你要匹配的字符串 你把aaaaab作为正则 你说a*b匹配不也!
      

  5.   

    static方法matches第一个是要编译的正则表达式,第二个是要匹配的字符序列
      

  6.   

    matches,接受两个参数,第一个是要编译的正则表达式,第二个是要匹配的字符序列