Preg_Replace第4次出现斜杠,哈希失败

时间:2012-10-19 00:33:14

标签: php regex preg-replace preg-match

  

可能重复:
  Unknown modifier in regular expression

嘿伙计们,我在尝试时收到一个未知修饰符警告(失败) 使用preg_replace替换带有hashmark的序列中的第四个斜杠, 希望你能帮忙。

$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 ')'

1 个答案:

答案 0 :(得分:1)

如果您使用/作为分隔符,则需要在正则表达式的中间转义所有/

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

旁注:请勿使用e修饰符。请改用preg_match_callback

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

$parts = explode("/",$value['path'],5);
$last = array_pop($parts);
$value['path'] = implode("/",$parts)."#".$last;
相关问题