![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| Logo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
Нужно из шаблона текста, по типу {раз|два{три|четыре}} получить список всех строк, ему соответствующих. У кого-нить есть код?
|
|||
|
||||
| klem4 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 27.7.2008 Репутация: 2 Всего: 2 |
Выводит слова, в которых есть фрагмент, начинающийся с a или b, за которыми следуют 10 или 20. Это сообщение отредактировал(а) klem4 - 1.6.2009, 17:22 |
|||
|
||||
| Logo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
Вы не поняли, надо по шаблону сгененрировать все возможные совпадения.
|
|||
|
||||
| klem4 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 27.7.2008 Репутация: 2 Всего: 2 |
Я думаю, для этого необходимо иметь строго оговоренный синтаксис шаблона, из чего он может состоять. Какие логические операторы в нем могут быть, на сколько видно из вашего примера, как минимум возможен оператор OR и вложенные скобки. Не тривиальная задачка-то выходит.
|
|||
|
||||
| Logo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
Ну да, кроме оператора ИЛИ ничего и не надо. Разве что оператор ?, аналогичный ? регекспов, но это вопрос удобства. Синтаксис любой. Согласен, задача не на час-другой, поэтому ищу готовое решение.
|
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
{раз|два{три|четыре}}
так разве не будет?
|
|||
|
||||
| Logo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
Объясняю. Есть строка "{свежие|спелые} {яблоки|груши}". Программа должна вывести список всех строк, соответствующих шаблону, т.е.
|
|||
|
||||
| gcc |
|
||||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
Это сообщение отредактировал(а) gcc - 2.6.2009, 11:46 |
||||
|
|||||
| KSURi |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
gcc, прочитал ваш код 3 раза. Все равно не понимаю. Не поясните?
-------------------- Died at Life.pl line 21 |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
мне надо было выбрать из строки определенные слова и сохранить всю строку, строки были из программы
я написал так:
Это сообщение отредактировал(а) gcc - 2.6.2009, 12:39 |
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
||||
|
||||
| KSURi |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
gcc, а что такое 34? И зачем матчить строку одному паттерну 4 раза (еще и в группирующих скобках)? Почему отключена проверка регистра?
Это обоснованно? Если да, то пожалуйста, приведите ссылку на соответствующий раздел документации. -------------------- Died at Life.pl line 21 |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
нет, сори мне просто показалось что так писать нельзя =~ /(34) || (yabl)/i в примере видел примерно (уже не понмю что за регулярка) именно так
и так писал я вопрос наверное не понял Это сообщение отредактировал(а) gcc - 2.6.2009, 14:19 |
|||
|
||||
| klem4 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 27.7.2008 Репутация: 2 Всего: 2 |
Если не принимать во внимение вложенность скобок, то получиться короче. В общем на вариант без скобок ссылка выше есть. А со скобками вот что выходит:
|
|||
|
||||
| Logo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
klem4
Спасибо, то что нужно! |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |