Помогите с регуляркой

Статус
В этой теме нельзя размещать новые ответы.

Jed7777

Постоялец
Регистрация
17 Июл 2008
Сообщения
136
Реакции
120
Есть например текст.
Для просмотра ссылки Войди или Зарегистрируйся111.rar
Нужно с помощью регулярки вырезать все что идет после последнего слеша (выделено, тоесть 111.rar), при этом строка может меняться как угодно.
 
HTML:
http:(.+)\/(.+)
работает если жадность метасимволов не убирать
 
перед обратным слешем прямой слэш нужно поставить, тэг PHP почемуто глотает его ...
погляди в конструкторе
HTML:
http://www.pcre.ru/eval/http%3A(.%2B)%5C%262f%3B(.%2B)%40%3D%23%3D%40101%40%3D%23%3D%40http%3A%262f%3B%262f%3Bfire189.sute.com%262f%3B676th-127063...49397%262f%3B56889-6%262f%3B111.rar/
 
перед обратным слешем прямой слэш нужно поставить, тэг PHP почемуто глотает его ...
погляди в конструкторе
HTML:
http://www.pcre.ru/eval/http%3A(.%2B)%5C%262f%3B(.%2B)%40%3D%23%3D%40101%40%3D%23%3D%40http%3A%262f%3B%262f%3Bfire189.sute.com%262f%3B676th-127063...49397%262f%3B56889-6%262f%3B111.rar/

Теперь он туже строку и выдал, нужно что после последнего слеша
 
во второй подстроке "(.+)" будет результат.
кинь кусок кода, который обрабатывает строку, поправим.
 
Есть например текст.
Нужно с помощью регулярки вырезать все что идет после последнего слеша (выделено, тоесть 111.rar), при этом строка может меняться как угодно.
PHP:
 $result = preg_replace('/^.*?\/([^\/]+)$/is', '$1', $url);
 
"/([^/]+)\.rar$/is"
 
В php есть две замечательные функции - dirname() и basename().

PHP:
$str = "http://fire189.sute.com/676th-12706349397/56889-6/111.rar";
echo basename($str);
echo dirname($str);

// второй способ - разбить все по / в массив и вывести без последнего
$arr = explode('/',$str);
array_pop($arr);
echo join('/',$arr);  

// и регуляркой - удалить не-слеши до конца строки
echo preg_replace('@/[^/]+$@','',$str);
 
а зачем для этого регулярка??
Код:
$line = 'http://fire189.sute.com/676th-12706349397/56889-6/111.rar';
$line = end(explode('/', $line));
echo $line;
не больше, не меньше
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху