3

我有每行将显示为这样的双引号对的数据。

"Key" "Value"

在这些对中可以有任何字符,有时还有可怕的 "" 嵌套对:

"Key "superkey"" ""Space" Value"

以前我发现:"([^"]*)"\s*"([^"]*)" 这将 Key 和 Value 匹配到两组:

$1 = Key
$2 = Value

但是,对于嵌套对,它只会输出:

$1 = superkey

有没有办法匹配对之间的所有字符?想要的示例输出:

$1 = Key "superkey"
$2 = "Space" Value

来自 QRegularExpression 和 c++11 文字字符串的正则表达式处理:

QRegularExpression(R"D("([^"]*)"\s*"([^"]*)")D");

我知道它匹配 Pearl 和 PHP 正则表达式。

4

1 回答 1

2
"(.*?)"[\t\r ]+"(.*?)"(?=[ ]*$)

试试这个。看演示。

https://regex101.com/r/hR7tH4/2

于 2015-07-09T06:46:17.410 回答