您好我有以下代码,但我不是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 ”? 我希望得到一个或另一个,而不是两者。 任何帮助都会得到满足。
答案 0 :(得分:1)
因为您正在使用捕获表达式()
。如果省略括号,则只能获得*copyMe*
。