我有一个字符串如下
"SampleFilter('x','y','z') AND TestFilter('a','b','c') AND SampleFilter('d','e','f')"
这里我想要一个正则表达式来匹配 SampleFilter 的出现,因此我希望输出返回所有 SampleFilter 的出现
我尝试过以下模式
".*SampleFilter\\((.*?)\\).*"
但是我已经捕获了组 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));
}
关于java - 正则表达式多次匹配字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44904776/