X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Требуется составить регулярное выражение
Пуховой
Пуховой
Topic Starter сообщение 27.7.2010, 21:22; Ответить: Пуховой
Сообщение #1


Новичок
*******


Группа: Banned
Сообщений: 3674
Регистрация: 8.10.2007
Поблагодарили: 877 раз
Репутация:   251  


Требуется универсальная регулярка.

Имеем: <input type="hidden" name="mact" value="iCMSUser,m5,register,0" />

Нужно получить: name="mact" value="iCMSUser,m5,register,0"

Как выпарсить iCMSUser,m5,register,0 - известно. Но на входе в программе будет нечто вроде параметра для парсинга: name="mact" value="$VALUE", после чего программа, в независимости от окружающего текста, должна выпарсить значение $VALUE, или значение вместе с окружающим текстом.

Пока что найден вариант:

name="mact" value=".*?"

Иными словами, заменяем "$VALUE" на ".*?" .

Есть ли еще методы решения проблемы?
2
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
zver777
zver777
сообщение 27.7.2010, 21:25; Ответить: zver777
Сообщение #2


Участник
***

Группа: User
Сообщений: 128
Регистрация: 15.4.2009
Поблагодарили: 150 раз
Репутация:   41  


Так приведённый вами вариант вроде работает без проблем.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Пуховой
Пуховой
Topic Starter сообщение 27.7.2010, 21:28; Ответить: Пуховой
Сообщение #3


Новичок
*******


Группа: Banned
Сообщений: 3674
Регистрация: 8.10.2007
Поблагодарили: 877 раз
Репутация:   251  


zver777, возможно ли выпарсить только значение параметра? (без пост-обработки полученных данных)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
zver777
zver777
сообщение 27.7.2010, 21:30; Ответить: zver777
Сообщение #4


Участник
***

Группа: User
Сообщений: 128
Регистрация: 15.4.2009
Поблагодарили: 150 раз
Репутация:   41  


reg:=tregexpr.create;
reg.expression:='name="mact" value="(.*?)"';
if reg.exec(s) then result:=reg.match[1];
В итоге result будет равно $VALUE


Или я что-то недопонимаю?

Сообщение отредактировал zver777 - 27.7.2010, 21:31


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Пуховой
Пуховой
Topic Starter сообщение 27.7.2010, 21:43; Ответить: Пуховой
Сообщение #5


Новичок
*******


Группа: Banned
Сообщений: 3674
Регистрация: 8.10.2007
Поблагодарили: 877 раз
Репутация:   251  


zver777, век живи, век учись, как говорится. Все верно, спасибо. Пойду править базовые функции.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
afiskon
afiskon
сообщение 28.7.2010, 0:33; Ответить: afiskon
Сообщение #6


Бывалый
****

Группа: User
Сообщений: 253
Регистрация: 8.11.2009
Из: Москва
Поблагодарили: 42 раза
Репутация:   4  


(Пуховой @ 27.7.2010, 21:43) *
Есть ли еще методы решения проблемы?

Если я правильно все понял, то вот:
#!/usr/bin/perl
use strict;

my $str = '<input type="hidden" name="mact" value="iCMSUser,m5,register,0" />';
my ($rslt) = $str =~ /(name="[^"]+" value="[^"]+")/;
print $rslt;


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Пуховой
Пуховой
Topic Starter сообщение 5.8.2010, 2:18; Ответить: Пуховой
Сообщение #7


Новичок
*******


Группа: Banned
Сообщений: 3674
Регистрация: 8.10.2007
Поблагодарили: 877 раз
Репутация:   251  


Требуется составить еще одно. Тут я в ступоре небольшом.

Имеем:

-----------------------------64222494627506%0D%0AContent-Disposition%3A%20form-data%3B%20name%3D%22message%22%0D%0A%0D%0A%C1%F3%F4%EA%E0%0D%0A-----------------------------64222494627506%0D%0AContent-Disposition%3A%20form-data%3B%20name%3D%22wysiwyg%22%0D%0A%0D%0A0%0D%0A-----------------------------64222494627506%0D%0AContent-Disposition%3A%20form-data%3B%20name%3D%22sigpicurl%22%0D%0A%0D%0Ahttp%3A//www.%0D%0A-----------------------------64222494627506%0D%0AContent-Disposition%3A%20form-data%3B%20name%3D%22upload%22%3B%20filename%3D%22%22%0D%0AContent-Type%3A%20application/octet-stream%0D%0A%0D%0A%0D%0A

Требуется достать все, что между "-----------------------------" и "%0D%0A". Иными словами - выпарсить все имена параметров и значения.


Добавлено:

Составил научным методом тыка все-таки: -----------------------------(.*?)%0D%0A*%0D%0A[^-]*[^-]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Требуется рерайтер на английском
2 Alex-777 316 Сегодня, 19:31
автор: Needlz
Открытая тема (нет новых ответов) Требуется пригласить участников в группу
5 riut81 762 Сегодня, 13:52
автор: Mikki
Открытая тема (нет новых ответов) Требуется хостинг
5 tiptopvkr 782 Сегодня, 12:59
автор: tiptopvkr
Открытая тема (нет новых ответов) Требуется почистить сайты от вирусов
6 Mukis 309 Вчера, 15:40
автор: qpPeW
Открытая тема (нет новых ответов) Требуется! Создать сайт обменника электронных/крипто валют
1 kalineo 329 8.12.2017, 16:07
автор: qpPeW


 



RSS Текстовая версия Сейчас: 11.12.2017, 21:34
Дизайн