Java 第一次/最后一次出现的正则表达式提取

Java 第一次/最后一次出现的正则表达式提取,java,regex,Java,Regex,我想提取第一个{和最后一个}之间的内容 {"Command":{"Version": "1.1","Body":{}}} 我试过这个正则表达式,为什么不起作用,没有找到匹配项 ^\\{(.*?)\\}$ 您能帮忙吗?这在MS RegEx中起作用: var regEx = "\\{{1}?(.*)\\}{1}?"; 它查找{的第一个(惰性)实例,然后获取所有字符,直到一个贪婪的“}”。请记住,如果您有: {}{}在一行上 您将获得: }{在一次抓取中 注意:您的不起作用,因为您正在查找所有

我想提取第一个{和最后一个}之间的内容

{"Command":{"Version": "1.1","Body":{}}}
我试过这个正则表达式,为什么不起作用,没有找到匹配项

^\\{(.*?)\\}$

您能帮忙吗?

这在MS RegEx中起作用:

 var regEx = "\\{{1}?(.*)\\}{1}?";
它查找{的第一个(惰性)实例,然后获取所有字符,直到一个贪婪的“}”。请记住,如果您有:

{}{}
在一行上

您将获得:

}{
在一次抓取中


注意:您的不起作用,因为您正在查找所有字符
(.*)
,这些字符没有
{
,但也有
}
。它需要一个开始的位置,否则它将抓取所有字符,直到最后一个
}
,然后查看它是否有
{
,并取消抓取的资格。

使用
(^\\\\\\\\{s)\\\\}$
Nah。但是可能。为什么要使用正则表达式?通常,使用更简单的语言函数就可以做到这一点。@Slavic,你能展示一下你的解决方案吗?