的follwing代码给我一个错误 “的preg_replace()[function.preg替换]:未知的修饰词 '?'”preg_replace()[function.preg-replace]:未知修饰符'?'
$str = 'background: url("../../dsdgsd/contain.jpg");';
echo preg_replace('/url\s?\(\s?(\"|\')([../?]*[a-z/]*?[/?]?)([a-z0-9_-]*[.][jpg|jpeg|png|jpeg]*)([\'|\"]\))/gi','url("../images/$3")',$str);
你对[regex语法](http://us.php.net/manual/en/regexp.reference.delimiters.php)有多熟悉?要么使用模式本身不太可能发生的分隔符,例如'#',或者在模式中转义'/'的每个实例。 – DCoder
编写这个正则表达式的人,混淆了'['和'('(除了各种其他问题)“,例如:'[../?]*''应该可以读为'(\\。\\ ./)*' ,即“多次出现'../'” – mvds