Regex 如何使用perl正则表达式删除字符串的第一个目录名(顶级)

Regex 如何使用perl正则表达式删除字符串的第一个目录名(顶级),regex,perl,Regex,Perl,我正在使用可以下载的perl脚本制作Wakaba图像板。然而,有一件事让我感到困惑,那就是函数“expand_filename($)”,它将扩展文件名的路径 所有文件(包括我的图像)上的所有内容都会添加/~ponydash/,ponydash是我在主机上的帐户名,因此我创建了一个调试函数来查看它将返回什么,如下所示: sub debug_string() { my ($filename)=@_; return $filename if($filename=~m!^/!);

我正在使用可以下载的perl脚本制作Wakaba图像板。然而,有一件事让我感到困惑,那就是函数“expand_filename($)”,它将扩展文件名的路径

所有文件(包括我的图像)上的所有内容都会添加/~ponydash/,ponydash是我在主机上的帐户名,因此我创建了一个调试函数来查看它将返回什么,如下所示:

sub debug_string()
{
    my ($filename)=@_;
    return $filename if($filename=~m!^/!);
    return $filename if($filename=~m!^\w+:!);

    my ($self_path)=$ENV{SCRIPT_NAME}=~m!^(.*/)[^/]+$!;
    return $self_path;
}
在HTML文档中调用时

<var debug_string()>

现在,我想知道如何修改第三行(即最后一行)以删除/~ponydash/部分,使其仅离开/b/

这应该只返回路径末尾的第二个路径部分:

^\/[^\/]*(\/.*)$
第一个/和所有前面的非斜杠字符将被忽略,直到第二个斜杠将像字符串的其余部分一样被捕获

^\/[^\/]*(\/.*)$