使用Regex查找使用Text编写的字符串列表

时间:2016-10-07 15:56:14

标签: java regex

我在这种情况下陷入困境。

 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
}

如果查找中的任何字符串匹配,则能够获得真实结果。 我想要文本的匹配列表。 有大量的文本可以找到更多的查找字符串,也可以查找字符串。 在查找:1213,231,1232是分开。

结果应该是: - 1213,231

1 个答案:

答案 0 :(得分:0)

您需要调用mat.group()才能返回所需的匹配项。

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

然后,您可以根据需要连接String的结果来构建预期结果mat.group(),例如使用StringBuilder

备注

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