Как я могу использовать регулярное выражение Perl для удаления первого имени каталога (верхний уровень) строки - PullRequest
1 голос
/ 04 марта 2012

Я создаю доску изображений Wakaba, используя Perl-скрипт, который я могу скачать.Однако одна вещь, которая озадачила меня, - это функция "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/

Теперь я хочу знать, как можно изменить третью или последнюю строку, чтобы удалить / ~ ponydash / part, чтобы просто оставить /b/.

1 Ответ

3 голосов
/ 04 марта 2012

Это должно вернуть только вторую часть пути к концу пути:

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

Первый / и все предшествующие символы без косой черты игнорируются до второй косой черты, которая будет захвачена как остальная часть строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...