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