有 Java 编程相关的问题?

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

java使用正则表达式查找文本中的字符串列表

我陷入了这种境地

 public void findListOfPattern(){
      String text = "abce1213abcd231asdf";
      String find = "1213|231|1232"; 
      Pattern part = Pattern.compile(find);
      Matcher mat = part.matcher(text);
      System.out.println(mat.find()); //True
}

如果findget匹配中的任何字符串,则能够获得真正的结果。 我想要文本中的匹配器列表。 这里的文本可以更大,查找字符串也可以更多。 在find中:12132311232是分开的

结果应该是:-1213231


共 (1) 个答案

  1. # 1 楼答案

    您需要调用mat.group()来返回所需的匹配

    通常,您会循环直到mat.find()返回true,然后通过调用mat.group()连续打印所有匹配项

    然后,您可以通过连接mat.group()的结果来构建预期的结果String,如使用StringBuilder

    注释

    • APIhere
    • 需要调用Matcher#find,以便Matcher#group产生任何结果,而不是抛出IllegalStateException
    • 你的Pattern只有默认组。如果使用了括号或命名组(来自Java 7),还可以调用重载Matcher#group(int group)Matcher#group(String name)