正则表达式(提取键/值对)

时间:2016-06-27 15:25:05

标签: regex qt key-value text-extraction

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

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。

致以最诚挚的问候,

1 个答案:

答案 0 :(得分:1)

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

如果删除引号,似乎只删除上一个:中的[]

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