Я разрабатываю плагин для Kirby CMS .У него есть тип данных, называемый тегами Кирби.Я хочу разобрать его.
У меня есть следующий вход:
(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+))?
По сути, мне нужно сопоставить начало строки или несколько пробелов, затем некоторые символы (ключ), двоеточие и все остальные, пока я не достигну другой комбинации пробелов и символов.
Есть ли способ заставить ее работать?