Распарсить строку в массив регуляркой

89
02 мая 2021, 00:20

на входе имеем строку вида

id:2 name:36Название kod:hjkhjk text:Описаghgfhние запроса kom:Комментарий администр script:Тело+Скрип23weта script:Тело:Скрипта script:Тело Скрипта param:Параметр пар ап апр патид

необходимо получить массив вида

id:2 
name:36Название 
kod:hjkhjk 
text:Описаghgfhние запроса 
kom:Комментарий администр 
script:Тело+Скрип23weта 
script:Тело:Скрипта 
script:Тело Скрипта 
param:Параметр пар ап апр пати 

На данный момент получилось следующее выражение

(id|name|kod|text|kom|script|param):([\w]+)

использовал флаги /g/u

https://regex101.com/r/LBxq8B/1

как описать что первым символом в ключе может встречаться восклицательный знак "!" для выражения (id|name|kod|text|kom|script|param):(.*?)(?=\s+\w+:|$)

id:2 !id:2 name:36Название !name:36Название kod:hjkhjk text:Описаghgfhние запроса kom:Комментарий администр script:Тело+Скрип23weта script:Тело:Скрипта script:Тело Скрипта param:Параметр пар ап апр патид

id:2 
!id:2 
name:36Название 
!name:36Название 
kod:hjkhjk 
text:Описаghgfhние запроса 
kom:Комментарий администр 
script:Тело+Скрип23weта 
script:Тело:Скрипта 
script:Тело Скрипта 
param:Параметр пар ап апр пати 
Answer 1
$str = 'id:2 name:36Название kod:hjkhjk text:Описаghgfhние запроса kom:Комментарий администр script:Тело+Скрип23weта script:Тело:Скрипта script:Тело Скрипта param:Параметр пар ап апр патид';
$patt = '~(?:id|name|kod|text|kom|script|param):[\w\h+]+(?=\s+)~u';
preg_match_all($patt, $str, $arr);
var_dump($arr);
Answer 2

Спасибо @trollingchar , то что надо

только немного подправил регулярку чтоб брал только то что нужно

(id|name|kod|text|kom|script|param):(.*?)(?=\s+\w+:|$)

READ ALSO
Не отображаются товары woocommerce + wordpress

Не отображаются товары woocommerce + wordpress

Проблема была в ограничении кол-во отображаемых товаров, исправил добавлением данного кода в functionsphp

104
Как загрузить видео в бд mysql на php?

Как загрузить видео в бд mysql на php?

Как загрузить видео в бд mysql на php?У меня есть уже готовый сайт осталось только загрузка видео в бд с загрузкой его(видео) на сервер, при этом...

109
Поиск в массиве с возможностью изменения результата (без ссылок)

Поиск в массиве с возможностью изменения результата (без ссылок)

Требуется написать функцию, через которую можно будет в массиве найти элемент (если несколько таких элементов - то первый), и при необходимости...

100