Can java.util.regex.Pattern do partial matches?

后端 未结 5 1666
时光取名叫无心
时光取名叫无心 2020-12-01 18:58

Is it possible to know if a stream/string contains an input that could match a regular expression.

For example

 String input=\"AA\";         


        
5条回答
  •  余生分开走
    2020-12-01 19:36

    Yes, Java provides a way to do that. First you have to call one of the standard methods to apply the regex, like matches() or find(). If that returns false, you can use the hitEnd() method to find out if some longer string could have matched:

    String[] inputs = { "AA", "BB" };
    Pattern p = Pattern.compile("AAAAAB");
    Matcher m = p.matcher("");
    for (String s : inputs)
    {
      m.reset(s);
      System.out.printf("%s -- full match: %B; partial match: %B%n",
                        s, m.matches(), m.hitEnd());
    }
    

    output:

    AA -- full match: FALSE; partial match: TRUE
    BB -- full match: FALSE; partial match: FALSE
    

提交回复
热议问题