fontSize=16.0, fontFamily=sans, align=0, color=FF0000, text="foo, bar"
и мне нужна спичка для слюны. Выход будет
array(
'fontSize'=>'16.0',
'fontFamily'=>'sans',
'align'=>'0',
'color'=>'FF0000',
'text'=>'foo, bar'
);
Я попробовал дальше, но это было плохо:
preg_spit("~[\s]="?[\s]"?,~", $string);
Просто разделите вашу входную строку в соответствии с приведенным ниже регулярным выражением,
,\s(?![^=]*")
<?php
$str = 'fontSize=16.0, fontFamily=sans, align=0, color=FF0000, text="foo, bar"';
$regex = '~,\s(?![^=]*")~';
$splits = preg_split($regex, $str);
print_r($splits);
?>
Выход:
Array
(
[0] => fontSize=16.0
[1] => fontFamily=sans
[2] => align=0
[3] => color=FF0000
[4] => text="foo, bar")
Регулярное выражение:
, ','
\s whitespace (\n, \r, \t, \f, and " ")
(?! look ahead to see if there is not:
[^=]* any character except: '=' (0 or more
times)
" '"'
) end of look-ahead