Php 正则表达式捕获开始和结束大括号,但不应

Php 正则表达式捕获开始和结束大括号,但不应,php,regex,Php,Regex,我在这里束手无策。我有以下字符串: {{"extraid":"fj09bA6K3K8u" ,"extraquantity" : 1 ,"extraitemState":"LOADED"},{"extraid2":"fj09bA6K3K8u2" ,"extraquantity2" : 2 ,"extraitemState2":"LOADED2"}} 以及以下正则表达式: {(?!{)([\s\S]*?)} 又回来了 {"extraid":"fj09bA6K3K8u" ,"extraquanti

我在这里束手无策。我有以下字符串:

{{"extraid":"fj09bA6K3K8u" ,"extraquantity" : 1 ,"extraitemState":"LOADED"},{"extraid2":"fj09bA6K3K8u2" ,"extraquantity2" : 2 ,"extraitemState2":"LOADED2"}}
以及以下正则表达式:

{(?!{)([\s\S]*?)}
又回来了

{"extraid":"fj09bA6K3K8u" ,"extraquantity" : 1 ,"extraitemState":"LOADED","extraid2":"fj09bA6K3K8u2" ,"extraquantity2" : 2 ,"extraitemState2":"LOADED2"}
带着大括号!我需要不带它们的绳子,而且我有脑梗塞。是的,我找过了,但没有找到。 帮个小忙? 实际PHP代码:

$re = '@{(?!{)([\s\S]*?)}@s';
                    $subst = '\\1';
                    $result = preg_replace($re, $subst, $innerstring);
这是返回已经在上面的内容。我需要

"extraid":"fj09bA6K3K8u" ,"extraquantity" : 1 ,"extraitemState":"LOADED","extraid2":"fj09bA6K3K8u2" ,"extraquantity2" : 2 ,"extraitemState2":"LOADED2"
没有花括号。是的,在这个例子中,它将返回两个结果。他们都带着不想要的牙套回来了。

我拿到了

\{+(.*?)\}+

为一个或多个相同字符设置的“+”运算符。最后感谢大家的参与。

有什么理由不只是正确解析JSON吗?如果您只是想删除第一个和最后一个字符-
substr($str,1,-1)
@JayBlanchard如果顶部的字符串是实际字符串,那么就我所知这不是JSONA(和JSONLint),它不是有效的JSON-应该有
[
]
环绕它不是
{}
@JayBlanchard几乎正确!它实际上是json,只是一个嵌套数组的一小部分,有几个维度深。我们需要对嵌套进行一些专门的“展平”以实现自动化。