![]() |
Модераторы: ginnie |
![]() ![]() ![]() |
|
Jeka from Doneck |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 15.9.2007 Репутация: нет Всего: нет |
Изучаю Perl и для наглядности делаю небольшие задания и столкнулся с проблеммой при построении регулярных выражений:
Первое просто поиск при помощи регулярного выражения Сформировать хеш, содержащий пары "Имя/Значение", поступившие методом GET из формы. Вывести на печать в виде строк элементы хеша. Пример строки - file://localhost/C:/Untitled-1.html?Textlayer1=322&textlayer2=asd&But1=Start Второе поиск и замена при помощи регулярного выражения Преобразовать текст следующим образом: перед всеми глаголами в неопределенной форме, т.е. заканчивающихся на -ить, -ать , -ять, еть, вставить отрицание "не". Это сообщение отредактировал(а) Jeka from Doneck - 30.9.2008, 12:41 |
|||
|
||||
rcdimon |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: нет Всего: 2 |
file://localhost/C:/Untitled-1.html?Textlayer1=322&textlayer2=asd&But1=Start
Ну самое элементарное, что приходит в голову по первой задачке
Добавлено через 9 минут и 24 секунды По второй
|
||||
|
|||||
Jeka from Doneck |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 15.9.2007 Репутация: нет Всего: нет |
rcdimon
Скажи пожалуйста, а в коде который к 1 примеру где указано то, что разделитель значениями & ?? Тоесть там ведь должен получится что то типа ключ[название элемента формы] = значение, потом после & следующие ключ значение. |
|||
|
||||
rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: нет Всего: 2 |
Да, верно. Там это не учитывается.. Если быть увереным, что на вход программы будет подана строка именно такого формата, то работать будеи и без этого.
Он находит такие слова, которые разделены символом =. Левое у него становится ключом в хеше, а правое значением. |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 1 Всего: 49 |
Уважаемый Jeka from Doneck,
с какой проблемой Вы столкнулись? Вообще не можете написать? или что-то работает не так? Покажите, что написали и что не работает. rcdimon, а если textlayer2=a%20sd -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
Jeka from Doneck |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 15.9.2007 Репутация: нет Всего: нет |
ginnie
вот как я поначалу для 1 задания сделал, но уж сильно много, и я так понял что substr \ split это уже не регулярные выражения. |
|||
|
||||
rcdimon |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: нет Всего: 2 |
Так я же сказал- Если быть увереным, что на вход программы будет подана строка именно такого формата То есть работает то, что я предложил, только для предложенного примера ) Под ваш случай можно немного изменить
![]() |
||||
|
|||||
Jeka from Doneck |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 15.9.2007 Репутация: нет Всего: нет |
rcdimon
Большое спасибо за помощь, единсивенное но - у меня то ли зациклен, то ли зависает твой 1 пример, пробовал уже и просто скопировать чтоб слово в слово было. Не подскажешь в чем может быть проблема? |
|||
|
||||
rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: нет Всего: 2 |
Да, ошибочка вышла. Надо было поставить параметр g к регулярке. Так все работает
|
|||
|
||||
Jeka from Doneck |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 15.9.2007 Репутация: нет Всего: нет |
rcdimon большое спасибо!!! Теперь более менее понятно по выражениям.
Это сообщение отредактировал(а) Jeka from Doneck - 30.9.2008, 13:48 |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: нет Всего: 50 |
||||
|
||||
MoXxX |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 13.8.2007 Репутация: нет Всего: нет |
вопрос несколько по сабжу: как в split вбить фильтруемый символ, по которому производится разбиение значения, (в моем случае корень таблицы в БД) через переменную?
Это сообщение отредактировал(а) MoXxX - 8.11.2008, 05:07 |
|||
|
||||
amg |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: нет Всего: 50 |
Может, я не точно понял вопрос, но вроде, все очевидно -- просто подставить переменную в регулярное выражение split'а. Например,
|
||||
|
|||||
MoXxX |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 13.8.2007 Репутация: нет Всего: нет |
спс, помогло и именно то что надо =)
|
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Регулярные выражения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |