0

可能重复:
正则表达式中的未知修饰符

嘿伙计们,我在尝试使用 preg_replace 用哈希标记替换序列中的第四个斜杠时收到未知修饰符警告(失败),希望您能提供帮助。

$value['path'] = preg_replace("/((.*?)(/)){4}/e", '(preg_replace("//$/", "", "\0"))#', $value['path']);

错误:

Warning: preg_replace() [<a href='function.preg-replace'>function.preg-replace</a>]: Unknown modifier ')'
4

1 回答 1

2

如果/用作分隔符,则需要/在正则表达式的中间全部转义。

我个人喜欢()用作分隔符,因为它不需要任何转义,它提醒我第一个匹配项(索引 0)是整个模式。

旁注:不要使用e修饰符。改为使用preg_match_callback

此外,您可以通过执行以下操作替换斜线的第 4 个实例:

$parts = explode("/",$value['path'],5);
$last = array_pop($parts);
$value['path'] = implode("/",$parts)."#".$last;
于 2012-10-19T00:40:03.030 回答