regex - 从 Perl 中的字符串中删除文件扩展名和路径

标签 regex perl file-extension filepath

我想获得一个没有路径的文件名(如果它是字符串的一部分)以及扩展名。

例如:

/path/to/file/fileName.txt     # results in "fileName"
fileName.txt                   # results in "fileName"
/path/to/file/file.with.periods.txt    # results in "file.with.periods" 

所以基本上,我想删除之前的任何内容,包括最后一个“/”(如果存在)以及最后一个“。”以及它之后的任何元字符。

对于这样一个新手问题,我很抱歉,但我是 perl 的新手。

最佳答案

为了在给定完整路径的情况下可移植地获取文件的基本名称,我建议使用 File::Basename 模块,它是核心的一部分。

要对文件扩展名进行启发式分析,我会使用正则表达式,例如

(my $without_extension = $basename) =~ s/\.[^.]+$//;

关于regex - 从 Perl 中的字符串中删除文件扩展名和路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3667859/

相关文章:

php 正则表达式(过滤器?)不应使用正则表达式的地方

regex - Powershell Regex - optional 命名组匹配

ruby - 正则表达式与?被动组内的量词?

image - Image::ValidJpeg 和内存文件的段错误

debugging - 删除 NoUIEntryPoints-DesignMode 包

asp.net - .MSPX 文件扩展名是什么?

java - 拆分带有数字特殊处理的驼峰式字符串

regex - 正则表达式只匹配 n 次

perl - perl 如何从模块中导入子程序

objective-c - NSCoder 二进制文件格式应应用什么文件扩展名?