информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Портрет посетителяАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Re 07.02.06 00:41  Число просмотров: 2001
Автор: Heller <Heller> Статус: Elderman
Отредактировано 07.02.06 00:48  Количество правок: 1
<"чистая" ссылка>
> Соовсем забыл как это делается, но вдруг понадобилось:
> Есть образец вида:
> form=check_form;texttime=blablabla
>
> check_form может принимать разные значения
> time может иметь разные модификации типа:
> hfhftimedjsjd|tm|vreamye
> так же все значения могут имет или не иметь символы в
> начале и в конце
Задача понятна только в общих чертах. Предварительные зачечания:

> $insidel1=~/ form=[A-Za-z0-9]text
1. Пробел перед form - регэкспы чувствительны к таким вещам (если не стоит модификатор "x").

2. После конструкции [A-Za-z0-9] надо бы поставить астерикс (*), если после form= может не идти символов, либо плюс (+), если должен быть по крайней мере один символ. Конструкция, которую ты написал обозначает только один символ, принадлежащий классу. Кстати есть метасимвол "\w", который полностью удовлетворяет классу, который ты написал (плюс, имеет в своем составе символ подчеркивания (_)).
3. После значения form=... ты не указал точку с запятой (в приведенной строке выше она была). Если точка с запятой - допустима, но не неодходима (может быть, а может и не быть), то обозначается конструкцией ";?".

>(()time(.*)|(.*)tmd(.*).*)vremya(.)=([A-Za-z0-9])\n/i
4. Проверь орфографию "tmd" и "vremya" - в приведенной задаче выше ты писал это по-другому.
5. Конструкцию(()time(.*)|(.*)tmd(.*).*)vremya(.)
я бы заменил на
(time|tmd|vremya).
хотя это и не критично, но значительно более экономно.
6. Насчет конструкции
([A-Za-z0-9])
Читай мой комментарий под цифрой два.
7. Непонятно обилие круглых скобок. Как в случае с конструкциями
(.*)
так и в случае с конструкцией из шестого комментария.
8. А что именно надо получить ты так и не указал :), но исходя из седьмого комментария можно предполжить, что ты так же перепутал с переменно $2. В приведенном варианте регэкспа она будет непуста только в том случае, если используется формат с time (а не tmd и не vremya) и заносится в нее тот текст, который идет собственно перед time, но послеtext(и после следующего за ним пробела, так как регексп к пробелам чувствителен). То есть если имеется фрагмент:
*text* bla1timebla2=bla3
то в $2 будет помещено "bla1".
Проверь этот момент еще раз.
<programming>
Perl Регулярка 06.02.06 20:36  
Автор: choor Статус: Elderman
<"чистая" ссылка>
Соовсем забыл как это делается, но вдруг понадобилось:
Есть образец вида:
form=check_form;texttime=blablabla

check_form может принимать разные значения
time может иметь разные модификации типа:
hfhftimedjsjd|tm|vreamye
так же все значения могут имет или не иметь символы в начале и в конце
Но
вот эта штука не выдаёт ничего:
if($insidel1=~/form=[A-Za-z0-9]text(()time(.*)|(.*)tmd(.*).*)vremya(.)=([A-Za-z0-9])\n/i) {$tmp=$2;}
Чувствую что что-то не правильно.
Re 07.02.06 00:41  
Автор: Heller <Heller> Статус: Elderman
Отредактировано 07.02.06 00:48  Количество правок: 1
<"чистая" ссылка>
> Соовсем забыл как это делается, но вдруг понадобилось:
> Есть образец вида:
> form=check_form;texttime=blablabla
>
> check_form может принимать разные значения
> time может иметь разные модификации типа:
> hfhftimedjsjd|tm|vreamye
> так же все значения могут имет или не иметь символы в
> начале и в конце
Задача понятна только в общих чертах. Предварительные зачечания:

> $insidel1=~/ form=[A-Za-z0-9]text
1. Пробел перед form - регэкспы чувствительны к таким вещам (если не стоит модификатор "x").

2. После конструкции [A-Za-z0-9] надо бы поставить астерикс (*), если после form= может не идти символов, либо плюс (+), если должен быть по крайней мере один символ. Конструкция, которую ты написал обозначает только один символ, принадлежащий классу. Кстати есть метасимвол "\w", который полностью удовлетворяет классу, который ты написал (плюс, имеет в своем составе символ подчеркивания (_)).
3. После значения form=... ты не указал точку с запятой (в приведенной строке выше она была). Если точка с запятой - допустима, но не неодходима (может быть, а может и не быть), то обозначается конструкцией ";?".

>(()time(.*)|(.*)tmd(.*).*)vremya(.)=([A-Za-z0-9])\n/i
4. Проверь орфографию "tmd" и "vremya" - в приведенной задаче выше ты писал это по-другому.
5. Конструкцию(()time(.*)|(.*)tmd(.*).*)vremya(.)
я бы заменил на
(time|tmd|vremya).
хотя это и не критично, но значительно более экономно.
6. Насчет конструкции
([A-Za-z0-9])
Читай мой комментарий под цифрой два.
7. Непонятно обилие круглых скобок. Как в случае с конструкциями
(.*)
так и в случае с конструкцией из шестого комментария.
8. А что именно надо получить ты так и не указал :), но исходя из седьмого комментария можно предполжить, что ты так же перепутал с переменно $2. В приведенном варианте регэкспа она будет непуста только в том случае, если используется формат с time (а не tmd и не vremya) и заносится в нее тот текст, который идет собственно перед time, но послеtext(и после следующего за ним пробела, так как регексп к пробелам чувствителен). То есть если имеется фрагмент:
*text* bla1timebla2=bla3
то в $2 будет помещено "bla1".
Проверь этот момент еще раз.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach