首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除它后面的所有数字,只保留最后一个数字

如何删除它后面的所有数字,只保留最后一个数字
EN

Stack Overflow用户
提问于 2013-02-22 21:06:15
回答 1查看 80关注 0票数 0

我想删除后面的所有数字,最后一个除外。

示例:

代码语言:javascript
复制
test test 1 1 1 255 255 test 7.log

我想通过以下方式实现转型:

代码语言:javascript
复制
test test test 255 7.log

我尝试了许多组合,但我发现这个结果是错误的:

代码语言:javascript
复制
test test 55 test 7.log

我感谢每个人的宝贵帮助,这个网站很棒。

EN

回答 1

Stack Overflow用户

发布于 2013-02-22 21:40:51

如果您需要删除除最后一个数字以外的所有数字:

代码语言:javascript
复制
$file = "test test 1 1 1 255 255 test 7.log";
list($name, $ext) = explode('.', $file);
// split the file into chunks
$chunks = explode(' ', $name);
$new_chunks = array();
// find all numeric positions
foreach($chunks as $k => $v) {
    if(is_numeric($v)) 
        $new_chunks[] = $k;
}
// remove the last position
array_pop($new_chunks);
// for any numeric position delete if from our list
foreach($new_chunks as $k => $v) {
        unset($chunks[$v]);
}
// merge the chunks again.
$file = implode(' ', $chunks) . '.' .$ext;
var_dump($file);

输出:

代码语言:javascript
复制
string(20) "test test test 7.log"

如果你想删除所有重复的数字,那么:

代码语言:javascript
复制
$file = "test test 1 1 1 255 255 test 7.log";
list($name, $ext) = explode('.', $file);
$chunks = explode(' ', $name);
$new_chunks = array();
$output = array();
foreach($chunks as $k => $v) {
    if(is_numeric($v)){
        if(!in_array($v, $new_chunks)) {
        $output[] = $v;
        $new_chunks[] = $v;
    }} else 
        $output[] = $v;
}
var_dump(implode(' ', $output). '.' .$ext);

输出:

代码语言:javascript
复制
string(26) "test test 1 255 test 7.log"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15024958

复制
相关文章

相似问题

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