正则表达式从末尾解析字符串直到达到分隔符(Perl)

时间:2010-03-20 22:04:13

标签: regex perl

我需要一个正则表达式来解析文本目录是 /home/foo/bar/hello.txt。 我想获取hello.txt并删除目录的其余部分,所以我想删除home / foo / bar /并且只获取hello.txt

3 个答案:

答案 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 ,则可以添加空格和注释以帮助解释正则表达式。