有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (3) 个答案

  1. # 1 楼答案

    你用word boundary{}包围了azy,这意味着它的前后不能是任何单词字符,比如a-z{}{}或_

  2. # 2 楼答案

    像这样使用怎么样

    Pattern p = Pattern.compile("Your string");
    Matcher m = p.matcher(inputString);
    while (m.find()) {
       String matched = m.group(1);
       // Do something
    }
    

    编辑:-看了你的字符串后:-

    String someString = "lazy cat";
    someString.matches("^.*azy.*$");
    
  3. # 3 楼答案

    \b表示单词边界,这意味着您正在搜索单词azy1,而不是搜索作为子字符串的azy

    只需删除\b即可获得预期结果

    someString.matches("^.*azy.*$");
    

    然而,如果只想搜索子字符串,那么使用正则表达式效率很低String.contains是此类用例的标准替代方案:

    someString.contains("azy");
    

    脚注

    一个单词被定义为一系列(至少1个)单词字符,它们之前或之后没有任何单词字符

    单词字符在默认设置中定义为[a-zA-Z0-9_]