【发布时间】:2016-06-27 15:25:05
【问题描述】:
我正在尝试从字符串中提取键/值对的列表(匹配)。例如:
PATH_1:"/", PATH_2:"/OtherPath", TODAY:"2016-06-27",XYZ :"1234"
这应该给出:
键 值 PATH_1 / PATH_2 /其他路径 今天 2016-06-27 XYZ 1234这是我目前所拥有的正则表达式:
((?:"[^"]*"|[^:,])*):((?:"[^"]*"|[^:,])*)
这很好用,除了当我添加一个带有“\”的路径时。例如:
PATH_1:"c:\", PATH_2:"c:\OtherPath", TODAY:"2016-06-27"
当在双引号序列中找到时,我不知道如何指示正则表达式跳过分号。希望有人可以帮助我。
PS:我正在使用 QT。
最好的问候,
【问题讨论】:
-
好像是working。
-
是的,这也是我注意到的 :( 该字符串是从 QSettings (ini) 读取的,并且在获取键的值时似乎删除了双引号。因此正则表达式不再起作用:( 真是一团糟……顺便说一下,给您带来的不便,我们深表歉意
-
“跳过分号”?您的输入中没有分号。这是分号:
;这是冒号::。 -
Barmar:抱歉输入错误。这是一个冒号
标签: regex qt key-value text-extraction