我记得学php的时候,老师说“e”是配合preg_replace($reg, $replace, $text)。使替换的内容($replace),可以使用正则$reg中的子模式,但以下这个代码却报错:$reg = "/(\d{2})\/(\d{2})\/(\d{4})/e";
$text = '01/25/2009到02/02/2009';
$replace = "\${3},\${1}";echo preg_replace($reg, $replace, $text); //报错syntax error, unexpected ','
把正则中的模式修正符e删除了,就没事了,这是怎么回事?
模式修正符e到底是什么作用?
$text = '01/25/2009到02/02/2009';
$replace = "\${3},\${1}";echo preg_replace($reg, $replace, $text); //报错syntax error, unexpected ','
把正则中的模式修正符e删除了,就没事了,这是怎么回事?
模式修正符e到底是什么作用?
……
$replace = "'\${3},\${1}'";
……
原因你查手册,总之加了e修饰符,替换字符串要符合php的语法规范,实际上就是eval的一次执行
echo preg_replace('/(\d+),(\d+)/e', '$1+$2', '2,3');
输出 5