首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使preg_replace具有替换计数的计数功能?

如何使preg_replace具有替换计数的计数功能?
EN

Stack Overflow用户
提问于 2011-01-27 22:30:37
回答 3查看 1.8K关注 0票数 1

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

我的代码

代码语言:javascript
复制
$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;

输出

代码语言:javascript
复制
ISO Burning Programs
Active@ ISO Burner 2.1.0.0
SPTDinst-v162-x86.exe

但我想要的输出是-

代码语言:javascript
复制
1 ISO Burning Programs
2 Active@ ISO Burner 2.1.0.0
3 SPTDinst-v162-x86.exe

有人能帮我吗?

提前感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-27 22:49:20

或者,您可以这样做:

代码语言:javascript
复制
$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);
票数 1
EN

Stack Overflow用户

发布于 2011-01-27 23:01:06

如果要使用preg执行此操作,则必须使用preg_replace_callback

代码语言:javascript
复制
$result = preg_replace_callback('/([^\/]*)(\/|$)/', function($matches){
    static $count = 0;
    $count++;
    return !empty($matches[1]) ? $count.' '.$matches[1].'<br/>' : '';
}, $replace);
票数 1
EN

Stack Overflow用户

发布于 2011-01-27 22:44:56

代码语言:javascript
复制
    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++;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4817594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档