Regex 匹配两个引号对内的任何字符,包括嵌套引号

Regex 匹配两个引号对内的任何字符,包括嵌套引号,regex,c++11,qregularexpression,Regex,C++11,Qregularexpression,我有这样的双引号对的数据,每行 "Key" "Value" 在这些对中可以有任何字符,有时会出现 可怕的“”嵌套对: "Key "superkey"" ""Space" Value" 以前我发现:“([^”]*)”\s*“([^”]*)” 这将键和值匹配到两个组: $1 = Key $2 = Value 但是,对于嵌套对,它将只输出: $1 = superkey 有没有一种方法可以匹配对之间的所有字符?需要的输出示例: $1 = Key "superkey" $2 = "Space" V

我有这样的双引号对的数据,每行

"Key" "Value"
在这些对中可以有任何字符,有时会出现 可怕的“”嵌套对:

"Key "superkey"" ""Space" Value"
以前我发现:
“([^”]*)”\s*“([^”]*)”
这将键和值匹配到两个组:

$1 = Key
$2 = Value
但是,对于嵌套对,它将只输出:

$1 = superkey
有没有一种方法可以匹配对之间的所有字符?需要的输出示例:

$1 = Key "superkey"
$2 = "Space" Value
从QRegularExpression和c++11文本字符串处理正则表达式:

QRegularExpression(R"D("([^"]*)"\s*"([^"]*)")D");
我知道它匹配Pearl和PHP正则表达式

"(.*?)"[\t\r ]+"(.*?)"(?=[ ]*$)
试试这个。看演示


如何区分嵌套引号和非嵌套引号?如果里面的是双倍的,那是可能的。你是说如果是“嵌套的”吗?这就是目前的问题,单引号对就可以了。有趣的问题。我尝试了一些简单的方法:
^“(.*)”\h+“(.*)”
这只适用于一行,但在多行中会降级。效果很好,我做了一些编辑,因为它会检测出双引号对是相邻的还是后面有其他字符-我收回这句话,它并没有达到最初的目的,但你的目的是,所以把它标记为答案,谢谢。