Java 如何在多个正则表达式键中获取值?

Java 如何在多个正则表达式键中获取值?,java,regex,Java,Regex,我正在尝试获取这些值​​用大括号括起来的,如下所示: {{{{{{{{{{{{{{{{{{value1 here!}}}}}}}}}}}{value2 here!}}}}}}}}}{value3 here!}}}}}} 我希望您被选为一组: {value1 here!} {value2 here!} {value3 here!} 我正在网站上做这个表达式,并将它应用到我的Java项目中 Pattern p = Pattern.compile("\\\\{.*\\\\}"); Matcher

我正在尝试获取这些值​​用大括号括起来的,如下所示:

{{{{{{{{{{{{{{{{{{value1 here!}}}}}}}}}}}{value2 here!}}}}}}}}}{value3 here!}}}}}}
我希望您被选为一组:

{value1 here!} {value2 here!} {value3 here!}
我正在网站上做这个表达式,并将它应用到我的Java项目中

Pattern p = Pattern.compile("\\\\{.*\\\\}");
Matcher m = p.matcher("{{{{{{{{{{{{{{{{{{value1 here!}}}}}}}}}}}{value2 here!}}}}}}}}}{value3 here!}}}}}}");
if (m.find()){
    String value1 = m.group(1);
    String value2 = m.group(2);
    String value3 = m.group(3);
}

如何解决此问题?

您只需要在非大括号字符上匹配全局匹配:

\{[^{}]*\}



这是通过使用结构
[^…]
来实现的,该结构与所有字符相匹配,除了在
[^
]
分隔符中指定的字符之外。group(3)建议将match与group混淆。另外,您的
*}
将尽可能匹配所有内容,直到最后一次
}
。可能使用
[^}]*}
。我的问题与上述关联无关。与我关联的一个地址是另一个路径‘(°o)/’