php Preg_replace_callback问题

时间:2010-06-09 15:10:38

标签: php replace callback pre

您好我有以下代码,但我不是reg exp的一大乐趣,因为它们太混乱了:

<?php
$r = '|\\*(.+)\\*|'; 
$w = '';
$s = 'hello world *copyMe* here'; 
function callbk($str){
    print_r($str);
    foreach($str as $k=>$v) {
        echo $v;
    }
}
$t = preg_replace_callback($r,'callbk',$s);

//output: Array ( [0] => *copyMe* [1] => copyMe ) *copyMe*copyMe


?>

我的问题是为什么同时存在“ * copyMe * ”和“ copyMe ”? 我希望得到一个或另一个,而不是两者。 任何帮助都会得到满足。

1 个答案:

答案 0 :(得分:1)

因为您正在使用捕获表达式()。如果省略括号,则只能获得*copyMe*