我正在为Kirby CMS开发一个插件。它有一种称为 kirby 标签的数据类型。我想解析它。
我有以下输入:
(link: http://google.com/ nospace:yes text: hello world foo: tesat: baz)
我从中提取:
link: http://google.com/ nospace:yes text: hello world foo: tesat: baz
然后,我需要解析这个输入并得到以下输出:
array (
'link' => 'http://google.com/',
'nospace' => 'yes',
'text' => 'hello world',
'foo' => '',
'tesat' => 'baz',
)
我几乎得到了想要的结果,但是在处理空对和带有空格的值时遇到了麻烦。在这里检查我的正则表达式:
([a-z0-9_-]+):(?:\s?(\S+))?
基本上,我需要匹配字符串的开头或一些空格,然后是一些字符(键)、一个冒号和所有其余部分,直到我达到另一个空格 + 字符组合。
有没有办法让它工作?