gpt4 book ai didi

perl - 如何在perl中找到字符串的最后一个索引

转载 作者:行者123 更新时间:2023-12-04 09:03:01 27 4
gpt4 key购买 nike

我是 perl 脚本的新手。有人能告诉我如何在字符串中找到重复多次的字符串中的最后一个 indexof 子字符串吗?

实际上我想从给定的路径中提取文件名

 $outFile = "C:\\AOTITS\\BackOffice\\CSVFiles\\test.txt";

如果我能找到 '\' 的最后一个字符串,我可以使用 substr 提取文件名功能。我已经通过以下方式做到了。但它是低效的。
$fragment =  $outFile ;
$count = index($fragment, "\\");
while($count > -1) {
$fragment = substr ($fragment, index($fragment, '\\')+1);
$count = index($fragment, '\\');
}

有人可以告诉我一种以有效方式做到这一点的方法吗?

最佳答案

使用 File::Basename :

#!/usr/bin/env perl
use strict; use warnings;

use File::Basename;

my $outFile = "C:\\AOTITS\\BackOffice\\CSVFiles\\test.txt";

my ($name) = fileparse $outFile;
print $name, "\n";

注意:您也可以使用正则表达式执行此操作,但是在处理文件名时,请使用专门设计用于处理文件名的函数。为了完整起见,以下是使用正则表达式捕获最后一部分的示例:
my ($name) = $outFile =~ m{\\(\w+\.\w{3})\z};

关于perl - 如何在perl中找到字符串的最后一个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4216300/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com