【发布时间】:2015-09-16 10:53:21
【问题描述】:
我正在使用以下代码匹配除 i 和 d 之外的所有字母。
/{([abcefghj-z]+)}/
我怎样才能改变它,以便 i 和 d 可以存在,但不是按那个顺序(id)。
示例字符串:
/admin/users/{type}/{id}/edit
在上面的例子中,只有 {type} 会被替换。
示例 2:
/admin/users/{type}/{id}/{supplied}/edit
在上面的例子中,{type} 和 {supplied} 都会匹配。
这可以使用正则表达式吗?
更新
我使用的代码如下:
$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);
【问题讨论】: