免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3102 | 回复: 6
打印 上一主题 下一主题

如何匹配得到最后一级目录名称? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-09 09:55 |只看该作者 |倒序浏览
5可用积分
比如: 输入为:
/data/tmp/2007-10-21
/data/tmp/2007-10-21/
2007-10-21
2007-10-21/

都能得到"2007-10-21". 怎么匹配呢?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2007-10-09 10:05 |只看该作者
perldoc File::Basename

  1. D:\MoChou>perl -MFile::Basename -le "print pack 'A30A*', $_, basename($_) for qw
  2. ( /data/tmp/2007-10-21 /data/tmp/2007-10-21/ 2007-10-21 2007-10-21/ )"
  3. /data/tmp/2007-10-21          2007-10-21
  4. /data/tmp/2007-10-21/         2007-10-21
  5. 2007-10-21                    2007-10-21
  6. 2007-10-21/                   2007-10-21

  7. D:\MoChou>
复制代码

论坛徽章:
0
3 [报告]
发表于 2007-10-09 10:10 |只看该作者
But any other regrex without using "File::Basename"?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2007-10-09 10:13 |只看该作者
原帖由 systemalgorithm 于 2007-10-9 10:10 发表
But any other regrex without using "File::Basename"?

你可以先告诉我为什么不用 File::Basename 吗?

论坛徽章:
0
5 [报告]
发表于 2007-10-09 10:20 |只看该作者
use File::Basename;

$name = $ARGV[0];
$name =~ s/(.*)\//$1/;
$want = basename($name);
print "$want\n";

论坛徽章:
0
6 [报告]
发表于 2007-10-09 10:22 |只看该作者

回复 #4 flw 的帖子

我忘了这个了 File::Basename          :-) 半天没想起来

论坛徽章:
0
7 [报告]
发表于 2007-10-09 13:51 |只看该作者
my $name = ARGV[0];
$last=(split(/\//, $name))[-1];
print "$last\n";

[ 本帖最后由 systemalgorithm 于 2007-10-9 14:06 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP