Forum Webscript.Ru

Программирование => Perl => Тема начата: FANTAzeRus от 15 Декабря 2003, 12:32:19

Название: Perl vs Регулярные выражения
Отправлено: FANTAzeRus от 15 Декабря 2003, 12:32:19
Помогите с регулярным выражением. Как выдрать из полного пути только имя файла.
Пример:
http://www.test.ru/images/test.gif

нужно выдрать только - test.gif
Название: Perl vs Регулярные выражения
Отправлено: mike от 15 Декабря 2003, 12:54:35
$name = \'http://www.test.ru/images/test.gif\';
($file) = $name =~ m!([^/]*)$!
Название: Perl vs Регулярные выражения
Отправлено: vladsu от 15 Декабря 2003, 16:56:25

use strict;
use Benchmark;

my $name = \'http://www.test.ru/images/test.gif\';
my $file;

timethese(1_000_000, {
                      \'Name1\' => sub {($file) = $name =~ m!([^/]*)$!},
                      \'Name2\' => sub {[B]$file = substr($name,rindex($name,"/")+1);[/B]},
                     });


Benchmark: timing 1000000 iterations of Name1, Name2...
     Name1: 52 wallclock secs (52.06 usr +  0.01 sys = 52.07 CPU) @ 19206.39/s (n=1000000)
     Name2:  1 wallclock secs ( 1.51 usr +  0.00 sys =  1.51 CPU) @ 661375.66/s (n=1000000)
Название: Perl vs Регулярные выражения
Отправлено: mike от 15 Декабря 2003, 17:10:07
vladsu
[off]Быстрее, не поспоришь. Но изначально речь шла о регулярных выражениях. ;)[/off]
Название: Perl vs Регулярные выражения
Отправлено: vladsu от 15 Декабря 2003, 17:20:16
Допускаю, что люди зная, что регекспы в Перл мощное средство, пытаются использовать их, и даже не знают, что есть случаи когда можно обойтись без них да еще и выиграть в производительности.
:D