Проблема с регуляркой (ловлю слэш)

cjremix

Новичок
Проблема с регуляркой (ловлю слэш)

Здравствуйте.
Возникла такая проблема с регуляркой:
нужно из строки типа "bla3/sdfs/3455" получить "bla3/sdfs"
для начала хочу хотя бы её найти :)
Пишу:
PHP:
preg_match("/^\/[A-Za-z0-9-_\.]+$/",$string,$matches);
Однако ничего не находит :(
Поискал в инете- нигде ничего нет про ловлю слэша "/", только про "\".
Пробовал
PHP:
preg_match("/^/[A-Za-z0-9-_\.]+$/",$string,$matches);
т.е. без слэша - ошибку выдаёт
Помогите пожалста разобраться, как поймать этот слэш :)
Спасибо.
 

Safary

Новичок
cjremix, нафига тебе регулярка? Всё намного проще делается:
PHP:
$string='bla3/sdfs/3455';
$new_string=explode('/',$string); $new_string=$new_string[0].'/'.$new_string[1];
echo $new_string;
 

cjremix

Новичок
Это ты здорово придумал :)
Я хочу сделать это в 1 строку, потому что подобных проверок будет много, не хочу чтобы подобный код с эксплодами (аж на 3(!) строки :) ) был в каждом из этих мест вместо одной красивенькой строчки с регуляркой :)
 

x-yuri

Новичок
cjremix в одну строку не всегда лучше
есть еще такая штука как функции... обычно читабельнее, чем регулярка
а что это за проверка?
 

cjremix

Новичок
Строка - это в скрипте адрес каталога, где находится пользователь. А нужно получить адрес его родителя. Я согласен, что эксплодом задача решается хорошо и правильно, но мне захотелось проверить свои силы в регулярках и их использовании. :)
 

Safary

Новичок
cjremix, у меня кстати всё в одну строку. нижняя и верхняя - это установка переменной и её вывод на экран. Ну решай сам, регулярка тормозит, моя функция быстрая. может она вообще не подходит под твои нужды, я не читал для чего тебе это нужно, просто как вариант привел...
 

vovanium

Новичок
элементарно вообще-то
PHP:
preg_match("/^([\w+\/.-]+)\/[\w+.-]+$/",$string,$matches);
// или если не нужно проверять символы в пути то еще проще
preg_match("/^(.+)\/[^\/]+$/",$string,$matches);
-~{}~ 03.04.09 11:57:

Но можно в одну строку и без регулярок
PHP:
$dir = substr($string, 0, strrpos($string, '/'));
 
Сверху