Модераторы: ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> рег.выражение как обрезать хвостик, замучала жадн.рег.выр. 
:(
    Опции темы
burakov
Дата 15.1.2009, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 28.7.2006

Репутация: нет
Всего: нет



добрый день

есть каталог $workdir = ''C:/Program Files/Abyss Web Server/htdocs/cgi-bin";
как при помощи рег. выр. сделать из него

$workdir = ''C:/Program Files/Abyss Web Server/htdocs";


т.е. обрезать хвостик 

что запутался я уже.
решил эту проблемку через массив....
а хочется попроще.....

помогите...


--------------------
Нотный архив http://libnote.ru скачать ноты бесплатно
PM MAIL   Вверх
smartov
Дата 15.1.2009, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: нет
Всего: 259



Код

<?php

$workdir = "C:/Program Files/Abyss Web Server/htdocs/cgi-bin";
$workdir = preg_replace('/\/[^\/]+$/U', '',$workdir);

echo $workdir;

?>

PM MAIL   Вверх
amg
Дата 15.1.2009, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: нет
Всего: 50



Код
$workdir =~ s|/[^/]*$||;
$workdir =~ s|.(?:.(?<!/))*$||;
$workdir =~ s|(.*)/.*|$1|;


PS 1-й вариант -- то же самое, что и у smartov (успел внеред smile ) 

Это сообщение отредактировал(а) amg - 15.1.2009, 16:21
PM MAIL   Вверх
Loki
Дата 18.1.2009, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 244
Регистрация: 9.7.2006

Репутация: нет
Всего: нет



еще должно вот так...
Код

$workdir =~ s/\/cgi-bin$//i;

а вот как такие "хвостики" обрезать?
Код

");
", string:end))

т.е. все что до " - оставить.

Это сообщение отредактировал(а) Loki - 18.1.2009, 11:01
PM MAIL   Вверх
nitr
Дата 18.1.2009, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: нет
Всего: 84



Loki, способов как всегда много, вот пришло в голову
Код
s/(.+)".+$/$1/


должен удалять после последней " ;) и ковычку тоже

или немного переделав рег.выр amg
Код
s/"(.(?<!"))+$//


если ковычки оставить:
1) 
Код
s/(.+)".+$/$1/

2) 
Код
s/(.(?<!"))+$//


Это сообщение отредактировал(а) nitr - 18.1.2009, 15:15


--------------------
PM   Вверх
smartov
Дата 18.1.2009, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: нет
Всего: 259



OMG я не заметил что это раздел Perl smile sorry
PM MAIL   Вверх
Loki
Дата 19.1.2009, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 244
Регистрация: 9.7.2006

Репутация: нет
Всего: нет



никогда не пользовался аргументами так как тут...
Код

s/(.+)".+$/$1/

и у меня это не сработало smile 
PM MAIL   Вверх
nitr
Дата 19.1.2009, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: нет
Всего: 84



Loki, а что вы делали?
Цитата(Loki @  18.1.2009,  11:01 Найти цитируемый пост)
т.е. все что до " - оставить.

Код
#!/usr/bin/perl
my $str = 'abcd_"_abcd!" efgh;';
$str =~ s/(.+)".+$/$1/;
print $str;

про то что если хочется оставить ковычки, я написал..


--------------------
PM   Вверх
tishaishii
Дата 29.1.2009, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

Репутация: нет
Всего: 8



Код
use File::Basename dirname;
print dirname 'C:/Program Files/Abyss Web Server/htdocs/cgi-bin';

PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Регулярные выражения | Следующая тема »


 




[ Время генерации скрипта: 0.0495 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.