我正在尝试提出一个正则表达式,它允许我解析冒号分隔的标记,格式化为键和值对。
[/foo:bar] // where [key:value]
棘手的部分是一个标记值可以包含另一个标记。
[/foo:[/foo:bar]]
在上述情况下,我想匹配 foo 作为键和 [/foo:bar] 作为值。以下表达式有效:
^\[/([^:]+):(.*)\]+$
但是,当字符串有多个标记时,这不起作用。例如:
[/foo:[/foo:bar]][/foo:bar] // results in foo and [/GetPath:[/GetPath:]]][/foo:bar
我想我只是稍微偏离了一点,但我一辈子都无法弄清楚我错过了什么。