我写了一个非常简单的正则表达式的例子,但为什么运行结果总是不正确呢?代码如下:
...................
        String regEX = "a?";
        Pattern pattern = Pattern.compile(regEX);
        Matcher matcher = pattern.matcher("abc");
        boolean b = matcher.matches();
        System.out.println(b);
        System.out.println(matcher.groupCount());
...................
输出:
false
0
百思不解,我的环境是1.5,请问大家这是怎么回事啊,Pattern和Matcher这两个类这么不好用啊

解决方案 »

  1.   

    应该是
    String regEX = "a?b";
    这样吧
      

  2.   

    写错了String regEX = "a?bc";
      

  3.   

    String regEX = "a*bc";
     是这样吗?
      

  4.   

    如果正则表达式写成a,因该在abc里可以找到匹配a的,但为什么matcher.matches()依旧是false啊?而且macther.groupCount()还是为0!
      

  5.   

    boolean b = matcher.find();
      

  6.   

    java 的表达式中的 matches 的意义是:"完全匹配",相当于 "^a?$",如果部分匹配,请用 find()
      

  7.   

    Boolean FoundMatch = false;
    try {
    Pattern Regex = Pattern.compile("a",
    Pattern.CANON_EQ);
    Matcher RegexMatcher = Regex.matcher(SubjectString);
    FoundMatch = RegexMatcher.find();
    } catch (PatternSyntaxException ex) {
    // Syntax error in the regular expression
    }