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



 

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

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


Топовый постер
*******


Группа: Active User
Сообщений: 3675
Регистрация: 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


Топовый постер
*******


Группа: Active User
Сообщений: 3675
Регистрация: 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


Топовый постер
*******


Группа: Active User
Сообщений: 3675
Регистрация: 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


Топовый постер
*******


Группа: Active User
Сообщений: 3675
Регистрация: 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[^-]*[^-]

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Требуется рутинщик
Регистрация в соц сети
0 mks 298 20.5.2018, 9:50
автор: mks
Открытая тема (нет новых ответов) Требуется копирайт и рерайт
от 50 000 знаков и более!
2 GigArt 821 3.5.2018, 17:44
автор: GigArt
Открытая тема (нет новых ответов) Требуется продающий сценарий для аннонса академии трейдинга
0 websitedesign 437 1.5.2018, 18:29
автор: websitedesign
Открытая тема (нет новых ответов) Требуется спец в монетизации сайтов
2 Kiloan_Frost 607 1.5.2018, 12:47
автор: kuprum
Открытая тема (нет новых ответов) Требуется видеомонтаж для аннонса академии трейдинга
0 websitedesign 400 1.5.2018, 4:13
автор: websitedesign


 



RSS Текстовая версия Сейчас: 22.5.2018, 8:46
Дизайн