我想把 <!--Begin $abcd-->xxxxxxxxxxx<!--End $abcd--> 替换成 getd($abcd,"xxxxxxxxx") 其中 getd 是个函数,请问正则表达式怎么写。
给你一段smartemplate里面对这个标签分析的正则部分:
$page = preg_replace("/<!-- END[ a-zA-Z0-9_.]* -->/", "<?php\n}\n\$_obj=\$_stack[--\$_stack_cnt];}\n?>", $page);
if (preg_match_all(/<!-- BEGIN ([a-zA-Z0-9_.]+) -->/, $page, $var)){
你要的替换的正则:
/<!-- Begin ([a-zA-Z0-9_.]+) -->(.*)<!-- End[ a-zA-Z0-9_.]* -->/U
function getd($a,$b){
echo "a:".$a."<br>"."b:".$b;
}
$abcd = "world";
$str ="<!--Begin $abcd-->hello<!--End $abcd-->";
$str = preg_replace("/<.+>(.+)<.+\s(.+)-->/e","getd(\\1,\\2)",$str);