我在这种情况下陷入困境。
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
答案 0 :(得分:0)
您需要调用mat.group()
才能返回所需的匹配项。
通常,您会循环直到mat.find()
返回true
并通过调用mat.group()
连续打印所有匹配项。
然后,您可以根据需要连接String
的结果来构建预期结果mat.group()
,例如使用StringBuilder
。
备注强>
Matcher#find
以便Matcher#group
产生任何结果而不是IllegalStateException
Pattern
只有默认组。如果您使用括号或命名组(来自Java 7),您还可以调用重载Matcher#group(int group)或Matcher#group(String name)。