【发布时间】:2015-11-24 23:34:28
【问题描述】:
我正在尝试在 Java 中制定一个正则表达式来捕获多个组。这是我试图从...中捕获的字符串(我们称之为output)
ltm virtual MY_VM {
rules {
foo_bar
baz
qux-baz
}
}
我正在尝试捕获最内层括号之间的所有内容,即foo_bar、baz 和qux-baz。到目前为止,我...
String regex = "ltm\\svirtual\\sMY_VM\\s\\{\\s*\\n\\s*rules\\s\\{\n\\s*([^\n]*)\\s*\\}\n\\s*\\}";
final Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(output);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
但这当然只有在列表中只有一项时才匹配。如何修改我的正则表达式以匹配最内层括号中的任意数量的捕获组,假设每个组由换行符和任意数量的空格分隔,就像我在我的示例中那样?
【问题讨论】: