php中preg_replace函数的正则问题
原文是<?php$var['a'];?>替换为<?php$ehs->get(var)->value['a'];?>或者是<?php$var['a']['b'];?>替换为...
原文是 <?php $var['a']; ?>
替换为 <?php $ehs->get(var)->value['a']; ?>
或者是 <?php $var['a']['b']; ?>
替换为 <?php $ehs->get(var)->value['a']['b']; ?>
依次类推,
求正则高手指教.使用一次preg_replace替换是否可以
preg_replace如果替换一次不可以,那么替换两次或多次,又该怎么做?
qq:306180670 谢谢啦 展开
替换为 <?php $ehs->get(var)->value['a']; ?>
或者是 <?php $var['a']['b']; ?>
替换为 <?php $ehs->get(var)->value['a']['b']; ?>
依次类推,
求正则高手指教.使用一次preg_replace替换是否可以
preg_replace如果替换一次不可以,那么替换两次或多次,又该怎么做?
qq:306180670 谢谢啦 展开
1个回答
2012-05-29 · 知道合伙人软件行家
关注
展开全部
试编写代码如下:
<?php
$s1 = "<?php \$var['a']; ?>";
$s2 = "<?php \$var['a']['bbb']; ?>";
$pa = '/<\?php +\$([_a-zA-Z0-9]+)(\[\'[a-zA-Z0-9]+\'\]+)(\[\'[a-zA-Z0-9]+\'\])*; ?\?>/si';
echo preg_replace_callback($pa, 'doReplace', $s2);
function doReplace($matches)
{
$resut = '<?php $ehs->get(' .$matches[1]. ')->value';
for($i=2;$i<count($matches);$i++)
{
$resut .= $matches[$i];
}
return $resut;
}
?>
//简便代码
<?php
$s1 = "<?php \$var['a']; ?>";
$s2 = "<?php \$var['a']['bbb']['cccc']; ?>";
$pa = '/<\?php +\$([_a-zA-Z0-9]+)([\'\S\']+); ?\?>/si';
echo preg_replace_callback($pa, 'doReplace', $s2);
function doReplace($matches)
{
return '<?php $ehs->get(' .$matches[1]. ')->value'. $matches[2];
}
?>
<?php
$s1 = "<?php \$var['a']; ?>";
$s2 = "<?php \$var['a']['bbb']; ?>";
$pa = '/<\?php +\$([_a-zA-Z0-9]+)(\[\'[a-zA-Z0-9]+\'\]+)(\[\'[a-zA-Z0-9]+\'\])*; ?\?>/si';
echo preg_replace_callback($pa, 'doReplace', $s2);
function doReplace($matches)
{
$resut = '<?php $ehs->get(' .$matches[1]. ')->value';
for($i=2;$i<count($matches);$i++)
{
$resut .= $matches[$i];
}
return $resut;
}
?>
//简便代码
<?php
$s1 = "<?php \$var['a']; ?>";
$s2 = "<?php \$var['a']['bbb']['cccc']; ?>";
$pa = '/<\?php +\$([_a-zA-Z0-9]+)([\'\S\']+); ?\?>/si';
echo preg_replace_callback($pa, 'doReplace', $s2);
function doReplace($matches)
{
return '<?php $ehs->get(' .$matches[1]. ')->value'. $matches[2];
}
?>
追问
$s1 = "".""."".""."";
得到的结果是这样的.,
get(va)->valuer
get(var)->value['a']
get(var)->value['a']['bbb']['cccc']
"get(va)->valuer" 这部分不对, r怎么跑后面去了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询