我有一个字符串如下
"SampleFilter('x','y','z') AND TestFilter('a','b','c') AND SampleFilter('d','e','f')"
这里我想要一个正则表达式来匹配SampleFilter的出现,所以我希望输出返回SampleFilter的所有出现次数
我试过下面的模式
".*SampleFilter\\((.*?)\\).*"
但是我已经捕获了第1组,它只返回最后一次出现
答案 0 :(得分:1)
您无法通过简单匹配检索数据;你需要迭代:
String text = "SampleFilter('x','y','z') AND TestFilter('a','b','c')"
+ " AND SampleFilter('d','e','f')";
Pattern re = Pattern.compile("SampleFilter\\((.*?)\\)");
Matcher matcher = re.matcher(text);
while (matcher.find()) {
System.out.println(matcher.group(1));
}