Smarty regex_replace之乱改

用到Smarty的regex_replace,正则里的分组符号$1,$2在编译的时候会被完全抹掉,找不到原因

一不做二不休,把$1,$2写成A1,A2,修改了modifier.regex_replace.php

$replace = str_replace(‘A’,’$’,$replace);

然后就可以成功的分组替换了

update:

今天找到原因了,是在模板里的正则需要用反斜杠转义,因为 $ 会被smarty解析,所以 $1,$2在经过smarty解析后,传回去的时候就啥也没了

正确的方法是 \$1 \$2

2008-09-24