我想用在php中执行以下替换,希望高手给一些指点 $content="{php}se(2){/php}<br>{php}se(1);{/php}";$re = "#{php}(.+[^;]){/php}#s";echo preg_replace($re, "<?=$1?>", $content); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不行啊。虽然上面的表达式是替代对了,但是对于这样复杂一点的式子$content="{php}se(2){/php}dsadsa;dsadsa{php}se(1);echo(dddd){/php}"替换的结果是<?=se(2){/php}dsadsa;dsadsa{php}se(1);echo(dddd)?>而期望得到的式子是<?=se(2)?>dsadsa;dsadsa{php}se(1);echo(dddd){/php}大家再帮帮忙想想办法 $pattern = "/{php}(\w+\(\d\)+;){\/php}/uim";$string = "{php}se(2){/php}<br>{php}se(1);{/php}";$replace = "<".chr(63)."=\\1?>";print preg_replace($pattern, $replace, $string); $pattern = "/{php}(\w+\(\d\)+;.*){\/php}/uim";$string = "{php}se(2){/php}dsadsa;dsadsa{php}se(1);echo(dddd){/php}";$replace = "<".chr(63)."=\\1?>";print preg_replace($pattern, $replace, $string); lantersen,反了,目的是替换{php}和{/php}之间没有分号;的表达式,而现在是替换有分号;的表达式。出来的结果是{php}se(2){/php}dsadsa;dsadsa<?=se(1);echo(dddd)?>而期望得到的式子是<?=se(2)?>dsadsa;dsadsa{php}se(1);echo(dddd){/php} <?php$content="{php}se(2){/php}dsadsa;dsadsa{php}se(1);echo(dddd){/php}";$re = "#{php}([^;]+){/php}#sU";echo preg_replace($re, "<?=$1?>", $content);?> 完美解决,谢谢ice_berg16 和 lantersen !!!如果两位有好的关于学习正则表达式的资料请发送到十分感激 :) php正则表达 php 发送手机短信,在防火墙需要开放那个端口 MYSQL 表出问题Table 'XX' is marked as crashed and should be repaired 用php的mail函数发邮件,如何设置阅读回执? 关于php urldecode 乱码的问题 关于php 多个构造函数的问题 好郁闷,不想回学校考那些烂试拿文凭,父亲又会发大火 如何判断上传的文件是中文名还是英文名? 请对CMS有了解的大侠来看看这个网站是什么程序做的 大家来讨论现在的网页制作技术怎样创新? 大家初学PHP的时候研究过哪些开源的代码呢? 问个很菜的问题
$content="{php}se(2){/php}dsadsa;dsadsa{php}se(1);echo(dddd){/php}"
替换的结果是
<?=se(2){/php}dsadsa;dsadsa{php}se(1);echo(dddd)?>而期望得到的式子是
<?=se(2)?>dsadsa;dsadsa{php}se(1);echo(dddd){/php}大家再帮帮忙想想办法
$string = "{php}se(2){/php}<br>{php}se(1);{/php}";
$replace = "<".chr(63)."=\\1?>";
print preg_replace($pattern, $replace, $string);
$string = "{php}se(2){/php}dsadsa;dsadsa{php}se(1);echo(dddd){/php}";
$replace = "<".chr(63)."=\\1?>";
print preg_replace($pattern, $replace, $string);
{php}se(2){/php}dsadsa;dsadsa<?=se(1);echo(dddd)?>
而期望得到的式子是
<?=se(2)?>dsadsa;dsadsa{php}se(1);echo(dddd){/php}
$content="{php}se(2){/php}dsadsa;dsadsa{php}se(1);echo(dddd){/php}";$re = "#{php}([^;]+){/php}#sU";
echo preg_replace($re, "<?=$1?>", $content);?>