как с помощью регекс выражений разбить строку

mstdmstd

Новичок
Всем привет,
Подскажите, пожалуйста, как с помощью регекс выражений разбить строку
arg1 : val1 arg2="val2 = 'A'" arg3 : val3
по пробелам, чтобы получить 3 пары
  • arg1 = val1
  • arg2="val2 = 'A'"
  • arg3 = val3
То есть пропускать пробелы внутри пары кавычек и если рядом с пробелом стоит символ ":" .

Спасибо!
 

RU_ru

Новичок
PHP:
$s = 'arg1 : val1 arg2="val2 = \'A\'" arg3 : val3';
$re = '/([a-z\d]+)\s?[:=]\s?("[^"]+"|[^ ]+)/i';
preg_match_all($re, $s, $m);
foreach($m[1] as $k=>$v) {
  echo $m[1][$k].' = '.$m[2][$k].'<br>';
}
 

mstdmstd

Новичок
Спасибо!
Я давал ссылку формата. Если строка имеет вид:
$s = 'abcd arg1 : val1 arg2="val2 = \'A\'" arg3 : val3';
то есть сначала имеет простой текс...
Как тогда ?
 

WMix

герр M:)ller
Партнер клуба
голос с задней парты:
- Валит падла! ВАЛИТ!!!!
 
Сверху