Php 如何使preg_replace具有替换次数计数功能?

Php 如何使preg_replace具有替换次数计数功能?,php,Php,我已经创建了一个preg_replace脚本,但现在我想在其中添加count函数 我的代码 $replace = 'ISO Burning Programs/Active@ ISO Burner 2.1.0.0/SPTDinst-v162-x86.exe'; $result=preg_replace('/[^0-9^A-Z^a-z-*… ,;_!@.{}#<>""=-^:()\[\]]/', '<br/>', $replace); echo $result; 但我想要的

我已经创建了一个preg_replace脚本,但现在我想在其中添加count函数

我的代码

$replace = 'ISO Burning Programs/Active@ ISO Burner 2.1.0.0/SPTDinst-v162-x86.exe';
$result=preg_replace('/[^0-9^A-Z^a-z-*… ,;_!@.{}#<>""=-^:()\[\]]/', '<br/>', $replace);
echo $result;
但我想要的结果是-

1 ISO Burning Programs
2 Active@ ISO Burner 2.1.0.0
3 SPTDinst-v162-x86.exe
有人能帮我吗?
提前感谢

preg_replace中有一个count函数,-1表示限制(无限),$count表示替换的数量。仅供参考。
    preg_replace has a count function in it, the -1 is limit (unlimited) and $count is the number of replacement. just FYI.

    $result=preg_replace('/[^0-9^A-Z^a-z-*… ,;_!@.{}#<>""=-^:()\[\]]/', '<br/>\n', $replace, -1, $count);

    $a = explode("\n", $result);
    $i=1;
foreach($a as $res)
    {
    echo $i . " " . $res;
$i++;
    }
$result=preg\u replace('/[^0-9^A-Z^A-Z-*…,;{}.{}.'=-^:()\[\]/','
\n',$replace,-1,$count); $a=分解(“\n”,$result); $i=1; foreach($a作为$res) { 回声$i.“.”$res; $i++; }
或者,您也可以这样做:

$replace = 'ISO Burning Programs/Active@ ISO Burner 2.1.0.0/SPTDinst-v162-x86.exe';
$result = explode('/', $replace);

foreach($result as $i => $value)
    printf("%d %s<br />", ++$i, $value);
$replace='ISO燃烧程序/Active@ISO燃烧器2.1.0.0/SPTDinst-v162-x86.exe';
$result=分解(“/”,$replace);
foreach($i=>$value的结果)
printf(“%d%s
,++$i,$value);
如果要使用
preg
执行此操作,必须使用:

$result=preg\u replace\u回调('/([^\/]*)(\/\$)/',函数($matches){
静态$count=0;
$count++;
return!空($matches[1])?$count'.$matches[1].
':''; },$replace);
str_replace(“/”、“
”、$replace)不是更好吗。。。?
$replace = 'ISO Burning Programs/Active@ ISO Burner 2.1.0.0/SPTDinst-v162-x86.exe';
$result = explode('/', $replace);

foreach($result as $i => $value)
    printf("%d %s<br />", ++$i, $value);
$result = preg_replace_callback('/([^\/]*)(\/|$)/', function($matches){
    static $count = 0;
    $count++;
    return !empty($matches[1]) ? $count.' '.$matches[1].'<br/>' : '';
}, $replace);