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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Еще рег.выражение, не работает как надо 
V
    Опции темы
igorold
Дата 3.4.2006, 07:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

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



есть рег. выражение :
Код

$line =~ s!.*Присоединен файл .*[(](.+)[)].+!$1!i;

обрабатываются следующие строки:
Код

Присоединен файл (Игорь Семенов) : C:\Documents and Settings\All Users\Документы\Акты выполненных работ\АДИС\Проба записи файлов с русскими длинными именами\Копия АКТ выполненных работ 02022006.doc
Присоединен файл (Владимир Курагин)  :  SanktPeterburg.html
Выполненные работы Присоединен файл (Валерий Абрамов)  :  C:\Documents and Settings\ava\Мои документы\Акты\Акт (в Уральск).doc

т.е. я хочу вырезать фамилию и имя того, кто присоединил файл ....
но в последнем случае выдается - в Уральск, т.е. последняя скобка, а нужна первая ... подскажите, пожалуйста ... smile


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
korob2001
Дата 3.4.2006, 08:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

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



Код

my $str = 'Выполненные работы Присоединен файл (Валерий Абрамов)  :  C:\Documents and Settings\ava\Мои документы\Акты\Акт (в Уральск).doc';

my($from) = $str =~ /\((.*?)\)/;

print "File from $from";

При условии, что первые скобки в строке, содержат имя.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
igorold
Дата 3.4.2006, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

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



имя содержат только первые скобки после слов Присоединен файл
не факт, что в строке не содержаться скобки до этой фразы ...


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
Ivan Kolesnikov
Дата 3.4.2006, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 9.3.2005
Где: г. Новокузнецк

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



Есть такая вещь в регулярном выражении как жадность: по умолчанию поиск жадный, тебе необходимо снизить его жадность.
Вот эксперименты с твоим regexp-ом:
Код

$line =~ s!.*Присоединен файл .*?\((.+)\).+!$1!i;

Вернет: "Валерий Абрамов) : C:\Documents and Settings\ava\Мои документы\Акты\Акт (в Уральск"
Код

$line =~ s!.*Присоединен файл .*?\((.+?)\).+!$1!i;

Результат: "Валерий Абрамов"

Интересный способ ты используешь для экранирования скобок: [(], но мне кажется понятнее будет всеже \( smile
--------------------
PM MAIL ICQ   Вверх
igorold
Дата 3.4.2006, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

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



большое спасибо!
работает ... жадность надо уменьшать всегда ... smile



--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
nitr
Дата 3.4.2006, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Не всегда! Очень часто она медленней максима!


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




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


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

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