我稍加修改,去掉了后缀。(未做全面测试,但对你给出的例子能得出正确结果)。如楼上所言,使用File::Basename module获得文件名
最安全。
#===============CODE START =======================
my $filename;
my $nameWithoutSuffix;
$filename
= 'C:\\Documents and Settings\\zmingjie\\桌面\\新建文件夹 (2)\
\2005101421233939820.xxx.jpg';
($nameWithoutSuffix) = $filename =~ m/.*[\\\/:](.*)\.[^\.]*$/;
print $nameWithoutSuffix ;
#===============CODE END =========================
On 7月17日, 上午11时25分, imxae <imx365s...@gmail.com> wrote:
> 如下所示用~ s/.*[\\\/:]//正则提取文件名时,如果是C:\\Documents and Settings\\zmingjie\\桌
> 面\\新建文件夹 (2)\\2005101421233939820.xxx.jpg 或是 路径文件都能提取正
> 常.这时如传入的 只是 2005101421233939820.xxx.jpg ,则提取出错.
>
> 提取不要扩展名的文件名
> ($'filename) = ~ s/.*[\\\/:]//;
>
> 正常提取出结果应为 2005101421233939820.xxx 没有.jpg
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---
没有评论:
发表评论