嘿伙计们,我在尝试时收到一个未知修饰符警告(失败) 使用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 ')'
答案 0 :(得分:1)
如果您使用/
作为分隔符,则需要在正则表达式的中间转义所有/
。
我个人喜欢使用()
作为分隔符,因为它不需要任何转义,它会提醒我第一个匹配(索引0)是整个模式。
旁注:请勿使用e
修饰符。请改用preg_match_callback
。
此外,您可以通过执行以下操作来替换第4个斜杠实例:
$parts = explode("/",$value['path'],5);
$last = array_pop($parts);
$value['path'] = implode("/",$parts)."#".$last;