php正则表达式preg_replace只替换一次(有很多匹配项……)

$p = /(123)(456)/
$r = "结果:$1$2"
echo preg_replace($p,$r,"123456123456")

输出为:结果为:123456结果为:123456

这不是我想要嗯结果,想要的结果为:

结果为:123456123456

即只替换一次,求指点……

mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )
在 subject 中搜索 pattern 模式的匹配项并替换为 replacement。如果指定了 limit,则仅替换 limit 个匹配,如果省略 limit 或者其值为 -1,则所有的匹配项都会被替换。

如果要只一次,加上limit即可
<?php
$p = '/(123)(456)/';
$r = "结果:$1$2";
echo preg_replace($p,$r,"123456123456",1);
?>
这样更易理解
<?php
$p = '/(123)(456)/';
$r = "结果:$1aaaaaa$2";
echo preg_replace($p,$r,"123456123456",1);

?>
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-01
preg_replace($p,$r,"123456123456",1)本回答被提问者采纳
第2个回答  2012-02-01
楼上正解。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网