php正则替换

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-06-23 13:42:20950검색

$array = array('aaa','bbbbbb','cccccc','ddddddddddd');
$str = 'abcdej{$array}jdijij';

$str = preg_replace("/^\{\$(.*?)\}$/i",'print_r(\\1);',$str);
print_r($str);

如何替换成 {print_r($array)}    正则怎么写??
还有 for while foreach 等正则该怎么写???


回复讨论(解决方案)

$str = 'abcdej{$array}jdijij';$str = preg_replace('/\{(\$.+?)\}/', '<?php print_r(\\1);?>', $str);echo $str;
abcdejjdijij

规则串用双引号括起时要
$str = 'abcdej{$array}jdijij';$str = preg_replace("/\{(\\\$.+?)\}/", '<?php print_r(\\1);?>', $str);echo $str;

\\$ 和 \\\$  结果是一样的,我知道\ 是转义,但是两个就行了,但是很多地方都写得是三个,这是为什么?

这是测试得来的,比如我的环境就得写3个

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.