|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Vladimir Podgorny 2:5020/400 06 Mar 2003 12:46:14 To : Andrew Afanasyev Subject : Re: Подскажите, плз. -------------------------------------------------------------------------------- Andrew Afanasyev <fpaint@nm.ru> wrote: > Hello, All. > > Как сделать такую вещь - нужно из относительного пути к файлу удалять > переходы вверх: "..". Cоответственно, регулярное выражение для этого должно > уметь обрабатывать такие варианты: > > ..\dir\dir1\ -> ..\dir\dir1\ > ..\..\dir\..\ -> ..\..\ > dir\..\ -> "" > \..\dir1\..\ -> \..\ > > Тривиальный способ: $str=~s/[^\\]+\\\.\.\\//g; обламывается на втором > варианте, и как это обойти, не совсем понятно. А зачем городить огород? [raven@t-rex - 10:44:56 Чтв Мар 06 /tmp] $ cat test.pl #!/usr/bin/perl -wT -- use strict; use warnings; use File::Basename; use Cwd qw(abs_path); printf "%s\n", abs_path dirname '/tmp/../usr/bin/../../bin/ls'; [raven@t-rex - 10:44:58 Чтв Мар 06 /tmp] $ ./test.pl /bin -- VP992-RIPE | The girl opened her mouth, I opened my veins... | (c) Tiamat, "Clouds" '92, "Undressed" --- ifmail v.2.15dev5 * Origin: Adamant ISP news server (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/12034a3f77b5e.html, оценка из 5, голосов 10
|