| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Шаблон состоящий из нескольких вариантах |
| Автор: Aleshka 24.1.2008, 11:31 |
| Вопрос произвожу поиск в строках определенных условий. При этом код при совпадении будет один и тот же. Я хочу сделать чтобы происходил поиск строк и которые подходят по одному из 3 условий, то я их мог обработать. Приведу пример: if ($line =~ /XXX+1 || YYY+2 ||WWW+3 /){ выполнить какой-то код}. Но этот варианту меня не срабатывает. Как вариант все это можно было сделать просто: if ($line =~ /XXX+1/){ Выполнить код } elsif ($line =~/YYY+2/){ Выполнить этот же код} elsif ($line =~/WWW+3/){ Выполнить этот же код} Но данное решение мне кажется непрактичным. |
| Автор: ginnie 24.1.2008, 11:56 | ||
Уважаемый Aleshka, можно попробовать вариант
|
| Автор: Aleshka 24.1.2008, 12:17 |
| Нет, ginnie. Такой вариант работать не будет!!! Решение я уже нашел, кому интересно вот оно: if ($line =~ /(?:XXX+1|YYY+2|WWW+3)/){ И выполняем здесь какой-то код. } |
| Автор: amg 24.1.2008, 12:21 | ||
Вариант ginnie будет работать, если вместо || использовать |. Но если перечислений много, то такое регулярное выражение может медленно работать. Более быстрый вариант:
|
| Автор: Aleshka 25.1.2008, 11:33 |
| О, я не знал про-то что этот код будет медленно работать спасибо учту. |