Я использую следующий код для соответствия всем буквам, кроме i и d.PHP preg_replace_callback ignore id
/{([abcefghj-z]+)}/
Как я могу изменить его так, чтобы я и d может существовать, но не в таком порядке (ID).
Пример строки:
/admin/users/{type}/{id}/edit
только {тип} бы получить заменить в приведенном выше примере.
Пример 2:
/admin/users/{type}/{id}/{supplied}/edit
В приведенном выше примере, как {тип} и {} поставляется бы получить согласованы.
Возможно ли это с помощью regex?
UPDATE
код я использую согласно ниже пост является:
$current = 'admin/users/{type}/{id}/changePassword';
$parameters = array('type' => 'administrators', 'id' => '1');
$path = preg_replace_callback('~\{(?!id\})[a-z]+\}~', function ($m) use ($parameters) {
return $parameters[$m[1]];
}, $current);
Когда я использую это регулярное выражение для своей функции выше, я получаю: 'preg_replace_callback(): разделитель не должен быть буквенно-цифровым или обратным слэшем. – V4n1ll4
PLS использует' ~ 'как разделитель регулярных выражений. –
Спасибо, но теперь я получаю 'Undefined offset: 1' – V4n1ll4