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



 

Здравствуйте, гость (

| Вход | Регистрация )

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


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

Имеем: <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


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


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


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


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


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


(Пуховой @ 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


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

Имеем:

-----------------------------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+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Требуется помощь по сайту на "ВордПресс"
Закрылся доступ в панель администратора
15 Tia2 2346 17.4.2024, 0:54
автор: diviner99
Открытая тема (нет новых ответов) Требуется копирайтер-постер
11 Hanj 2588 2.4.2024, 12:40
автор: Skyworker
Открытая тема (нет новых ответов) Как составить уравнение, чтобы назначить цену для товара?
2 rownong27 759 21.3.2024, 12:53
автор: Lumex
Открытая тема (нет новых ответов) требуется помощь с themasoftware (Темапостером)
0 Taylor 623 16.3.2024, 18:41
автор: Taylor
Открытая тема (нет новых ответов) Требуется контент-менеджер
1 Grimov 1160 8.2.2024, 9:54
автор: projectadmin


 



RSS Текстовая версия Сейчас: 19.4.2024, 15:08
Дизайн