说实话,我正在努力处理我需要提取部分字符序列的正则表达式.该序列包含用/
字符括起来的键对和值对.所以这对可能是/KEY/VALUE/
,但也/KEY/VAL/UE/
.这对在序列中彼此相邻.
我们来看一下示例序列:
/ABCD/value1//ECFG/value2//HIJK/value3a/value3b/
我想要做的是获取键值对的列表,如下所示:
ABCD -> value1
ECFG -> value2
HIJK -> value3a/value3b
这应该工作:
/(.+?)/(.+?)/(?=/|$)
Run Code Online (Sandbox Code Playgroud)
第一个paren将捕获密钥,第二个paren将捕获该值.前瞻匹配第二个/
,表示新的键/值对,或者匹配最后一个键/值对的字符串结尾.
编辑:这里有一些python代码:
s = "/ABCD/value1//ECFG/value2//HIJK/value3a/value3b/"
re.findall('/(.+?)/(.+?)/(?=/|$)', s)
# [('ABCD', 'value1'), ('ECFG', 'value2'), ('HIJK', 'value3a/value3b')]
Run Code Online (Sandbox Code Playgroud)