Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Регулярные выражения > Формирование регулярного выражения |
Автор: Jeka from Doneck 30.9.2008, 12:40 |
Изучаю Perl и для наглядности делаю небольшие задания и столкнулся с проблеммой при построении регулярных выражений: Первое просто поиск при помощи регулярного выражения Сформировать хеш, содержащий пары "Имя/Значение", поступившие методом GET из формы. Вывести на печать в виде строк элементы хеша. Пример строки - file://localhost/C:/Untitled-1.html?Textlayer1=322&textlayer2=asd&But1=Start Второе поиск и замена при помощи регулярного выражения Преобразовать текст следующим образом: перед всеми глаголами в неопределенной форме, т.е. заканчивающихся на -ить, -ать , -ять, еть, вставить отрицание "не". |
Автор: rcdimon 30.9.2008, 12:50 | ||||
file://localhost/C:/Untitled-1.html?Textlayer1=322&textlayer2=asd&But1=Start Ну самое элементарное, что приходит в голову по первой задачке
Добавлено через 9 минут и 24 секунды По второй
|
Автор: Jeka from Doneck 30.9.2008, 13:04 |
rcdimon Скажи пожалуйста, а в коде который к 1 примеру где указано то, что разделитель значениями & ?? Тоесть там ведь должен получится что то типа ключ[название элемента формы] = значение, потом после & следующие ключ значение. |
Автор: rcdimon 30.9.2008, 13:07 |
Да, верно. Там это не учитывается.. Если быть увереным, что на вход программы будет подана строка именно такого формата, то работать будеи и без этого. Он находит такие слова, которые разделены символом =. Левое у него становится ключом в хеше, а правое значением. |
Автор: ginnie 30.9.2008, 13:09 | ||
Уважаемый Jeka from Doneck,
с какой проблемой Вы столкнулись? Вообще не можете написать? или что-то работает не так? Покажите, что написали и что не работает. rcdimon, а если textlayer2=a%20sd |
Автор: Jeka from Doneck 30.9.2008, 13:13 | ||
ginnie
вот как я поначалу для 1 задания сделал, но уж сильно много, и я так понял что substr \ split это уже не регулярные выражения. |
Автор: rcdimon 30.9.2008, 13:19 | ||||
Так я же сказал- Если быть увереным, что на вход программы будет подана строка именно такого формата То есть работает то, что я предложил, только для предложенного примера ) Под ваш случай можно немного изменить
![]() |
Автор: Jeka from Doneck 30.9.2008, 13:31 |
rcdimon Большое спасибо за помощь, единсивенное но - у меня то ли зациклен, то ли зависает твой 1 пример, пробовал уже и просто скопировать чтоб слово в слово было. Не подскажешь в чем может быть проблема? |
Автор: rcdimon 30.9.2008, 13:40 | ||
Да, ошибочка вышла. Надо было поставить параметр g к регулярке. Так все работает
|
Автор: Jeka from Doneck 30.9.2008, 13:47 |
rcdimon большое спасибо!!! Теперь более менее понятно по выражениям. |
Автор: amg 30.9.2008, 14:29 |
Счастливый человек! |
Автор: MoXxX 8.11.2008, 05:04 |
вопрос несколько по сабжу: как в split вбить фильтруемый символ, по которому производится разбиение значения, (в моем случае корень таблицы в БД) через переменную? |
Автор: MoXxX 8.11.2008, 15:29 |
спс, помогло и именно то что надо =) |