【问题标题】:Partial match for regular expression in JavaJava中正则表达式的部分匹配
【发布时间】:2016-06-10 14:58:02
【问题描述】:

我如何理解正则表达式是否部分匹配其主题?

我试过了:

Pattern.compile("^\\d").matcher("01L").hitEnd()

还有这个:

Pattern.compile("^\\d").matcher("01L").matches()

它们都是假的,我想测试字符串是否以数字开头。

【问题讨论】:

    标签: java regex string pattern-matching


    【解决方案1】:

    使用matcher.find()方法:

    boolean valid = Pattern.compile("^\\d").matcher("01L").find(); //true
    

    PS:如果您在循环中或多次使用find,最好这样做:

    Pattern p = Pattern.compile("^\\d"); // outside loop
    boolean valid = p.matcher("01L").find(); // repeat calls
    

    你得到:

    • matches 尝试将整个输入与模式匹配,因此它返回 false
    • hitEnd 返回 true 如果在此匹配器执行的最后一次匹配操作中搜索引擎命中了输入结尾并且因为它没有得到 false

    【讨论】:

      猜你喜欢
      • 2011-06-13
      • 1970-01-01
      • 2017-11-29
      • 2017-06-23
      • 1970-01-01
      • 2015-04-12
      • 2022-01-15
      • 1970-01-01
      相关资源
      最近更新 更多