Я могу разбить строки в формате key:value;
, используя следующий код:
$inside = "key1:value1;key2:value2;key3:value3;";
preg_match_all("/([^:]+):([^;]+);/s", $inside, $pairs);
Я хотел бы разрешить вхождение символа двоеточия и точки с запятой взначения путем введения escape-символа, например \;
любая двоеточие или точка с запятой, непосредственно предшествующие обратной косой черте, будут игнорироваться.
Бонусные баллы, если в одном и том же регулярном выражении экранированные символы могут быть сохранены в массиве неоткрытых совпадений без необходимости проходить все через str_replace
.Спасибо за любую помощь, которую вы можете предложить.