正则表达式(提取key/value对)

Regular expression (extract key/value pairs)

我正在尝试从字符串中提取 key/value 对的列表(匹配项)。例如:

PATH_1:"/", PATH_2:"/OtherPath", TODAY:"2016-06-27",XYZ :"1234"

这应该给出:

      Key            Value
      PATH_1         /
      PATH_2         /OtherPath
      TODAY          2016-06-27
      XYZ            1234

这是我目前掌握的正则表达式:

((?:"[^"]*"|[^:,])*):((?:"[^"]*"|[^:,])*)

除了当我添加一个带有“\”的路径时,这很好用。例如:

PATH_1:"c:\", PATH_2:"c:\OtherPath", TODAY:"2016-06-27" 

我不知道如何指示正则表达式在双引号序列中找到时跳过分号。希望有人能帮助我。

PS : 我正在使用 QT。

此致,

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

如果要删除引号,似乎只需从最后一个 [] 中删除 : 即可。

((?:"[^"]*"|[^:,])*):((?:"[^"]*"|[^,])*)