![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| Aleshka |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 10.12.2007 Где: Харьков Репутация: нет Всего: нет |
Вопрос произвожу поиск в строках определенных условий. При этом код при совпадении будет один и тот же.
Я хочу сделать чтобы происходил поиск строк и которые подходят по одному из 3 условий, то я их мог обработать. Приведу пример: if ($line =~ /XXX+1 || YYY+2 ||WWW+3 /){ выполнить какой-то код}. Но этот варианту меня не срабатывает. Как вариант все это можно было сделать просто: if ($line =~ /XXX+1/){ Выполнить код } elsif ($line =~/YYY+2/){ Выполнить этот же код} elsif ($line =~/WWW+3/){ Выполнить этот же код} Но данное решение мне кажется непрактичным. |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
Уважаемый Aleshka, можно попробовать вариант
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| Aleshka |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 10.12.2007 Где: Харьков Репутация: нет Всего: нет |
Нет, ginnie. Такой вариант работать не будет!!!
Решение я уже нашел, кому интересно вот оно: if ($line =~ /(?:XXX+1|YYY+2|WWW+3)/){ И выполняем здесь какой-то код. } |
|||
|
||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Вариант ginnie будет работать, если вместо || использовать |. Но если перечислений много, то такое регулярное выражение может медленно работать. Более быстрый вариант:
Это сообщение отредактировал(а) amg - 24.1.2008, 12:24 |
|||
|
||||
| Aleshka |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 10.12.2007 Где: Харьков Репутация: нет Всего: нет |
О, я не знал про-то что этот код будет медленно работать спасибо учту.
|
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |