0

我正在为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+))?

基本上,我需要匹配字符串的开头或一些空格,然后是一些字符(键)、一个冒号和所有其余部分,直到我达到另一个空格 + 字符组合。

有没有办法让它工作?

4

0 回答 0