我需要一个正则表达式来解析文本目录是 /home/foo/bar/hello.txt。 我想获取hello.txt并删除目录的其余部分,所以我想删除home / foo / bar /并且只获取hello.txt
答案 0 :(得分:3)
如果您需要执行类似的操作,则意味着您使用了错误的方法来构建URI。您不需要解析您构造的内容,您需要为您的URI设置架构。
更新:对于文件系统中的文件,请使用File::Basename
答案 1 :(得分:0)
更新:也适用于路径: - )
my ($filename) = $dir =~ m!^.*/(.*)!;
或
my $filename = (split '/', $dir)[-1];
答案 2 :(得分:0)
我建议使用以下等效的正则表达式:
my ($extract1) = m { ( [^/]* ) $ }x ;
并添加了评论
my ($extract2) = m {
( # start capturing
[^/] * # anything other than / repeated
) # start capturing
$ # anchor to end of string
}x ;
如果您在结尾处添加 x ,则可以添加空格和注释以帮助解释正则表达式。