![]() |
|
Модераторы: ginnie |
![]()
|
|
| burakov |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 28.7.2006 Репутация: нет Всего: нет |
Добрый день.
Есть код
необходимо в $1 выбрать из полного пути - имя файла понимаю, что это делается, при помощи отключения жадности (другим способом я это уже реализовал, так что не предлагать Но куда бы не тулил "?" все равно в $1 захватывает кусок пути. Подправьте пожалуйста код Огромное Спасибо. |
|||
|
||||
| Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: нет Всего: 34 |
По идее вот так должно сработать. |
|||
|
||||
| burakov |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 28.7.2006 Репутация: нет Всего: нет |
Спасибо, работает...
Добавлено через 13 минут и 30 секунд почитал про [^ ] - понял как работает
в принципе никаких возражений... хорошо А все таки при помощи отключения жадности рег. выражений можно как нибудь выбрать имя файла из полного пути чисто из принципа? потому как слева направо (от начала в конец строки) - жадность у меня отключать ПОЛУЧАЕТСЯ а вот справа налево (от конца строки в ее начало строки) - НЕТ. СПАСИБО. |
|||
|
||||
| sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 1 Всего: 31 |
потому, что просмотр строки идет слева направо, иногда с возвратами назад.
а жадность вообще не имеет направления =) perl ищет совпадение как можно раньше в строке. т.е. если есть строка $a = "aaabbb"; и шаблон /(\w+)(b+)/ то перл найдет $1 = "aaabb" и $2 = "b". потому что это не противоречит шаблону и $1 - максимально длинно. если отключить жадность /(\w+?)(b+)/ то все будет точно так же, только будет найдено самое короткое значение $1 удовлетворяющее шаблону $1 = "aaa", $2 = "bbb"; заметьте, что в обоих случаях сначала был ищется совпадение для $1 а потом для $2. поэтому не бывает жадости справа налево |
|||
|
||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: нет Всего: 50 |
Еще вариант - заставить жадность работать на тебя:
|
|||
|
||||
| burakov |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 28.7.2006 Репутация: нет Всего: нет |
понятненько.
всем большое спасибо. тему закрываю. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Регулярные выражения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |