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

时间:2015-07-09 06:36:38

标签: regex c++11 qregularexpression

我的数据显示为每行的双引号对。

"Key" "Value"

在这些对中,可以有任何角色,有时会出现 可怕的#34;"嵌套对:

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

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

$1 = Key
$2 = Value

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

$1 = superkey

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

试试这个。看看演示。

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