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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Попробуй re2c 03.04.06 13:33  Число просмотров: 3470
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
http://re2c.org/

Правда синтаксис не grep/perl (flex-подобный), но все равно разбор лексики на основе регэкспов. С исходниками естественно

> Здравствуйте!
>
> Нужно мне свои регулярные выражения заимплементить, но
> проблемма в том, что приложение критично к памяти и
> скорости. Соответственно полные матрицы переходов размера

Скорость обещают в 2-3 раза быстрее, чем flex. Размер, насколько я понимаю, будет соптимизирован компилятором: для сильно разреженных case-таблиц, компиляторы генерируют бинарный поиск (естественно с логарифмическим временем), хотя в каждом состоянии количество переходов не очень большое. Да и скорость ВСЕ РАВНО получается в 2-3 раза быстрее табличного flex-а.

> N*m (N -- мощность алфавита, m -- длина шаблона) не
> устраивают.
>
> Возможна ли компиляция регекспов (составление матрицы
> переходов для DFA) сразу для нескольких паттернов? Матрица
> переходов получается разреженной -- возможно ли ее
> эффективное сжатие (без существенной потери перформанса)?

Можешь глянуть на способы упаковки разреженных матриц в burg:
http://www.google.com/search?hs=PqK&hl=en&lr=&client=opera&rls=en&q=burg+code+generation&btnG=Search
Не пугайся слова кодогенерация, насколько я понимаю, она производится при помощи грамматик (на грамматиках регэкспы сделать можно).

> Очень нужныконкретные советы и ссылки на материалы по
> оптимизации регекспов. В гугле ничего по существу не нашел
> (по методам реализации движков для регекспов). Смотрю glibc
> -- пока не особо понятно...
<theory>
оптимизация регулярных выражений 02.04.06 00:02  
Автор: lunc <Alexander Krizhanovsky> Статус: Member
<"чистая" ссылка>
Здравствуйте!

Нужно мне свои регулярные выражения заимплементить, но проблемма в том, что приложение критично к памяти и скорости. Соответственно полные матрицы переходов размера N*m (N -- мощность алфавита, m -- длина шаблона) не устраивают.

Возможна ли компиляция регекспов (составление матрицы переходов для DFA) сразу для нескольких паттернов? Матрица переходов получается разреженной -- возможно ли ее эффективное сжатие (без существенной потери перформанса)?

Очень нужныконкретные советы и ссылки на материалы по оптимизации регекспов. В гугле ничего по существу не нашел (по методам реализации движков для регекспов). Смотрю glibc -- пока не особо понятно...
Попробуй re2c 03.04.06 13:33  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
http://re2c.org/

Правда синтаксис не grep/perl (flex-подобный), но все равно разбор лексики на основе регэкспов. С исходниками естественно

> Здравствуйте!
>
> Нужно мне свои регулярные выражения заимплементить, но
> проблемма в том, что приложение критично к памяти и
> скорости. Соответственно полные матрицы переходов размера

Скорость обещают в 2-3 раза быстрее, чем flex. Размер, насколько я понимаю, будет соптимизирован компилятором: для сильно разреженных case-таблиц, компиляторы генерируют бинарный поиск (естественно с логарифмическим временем), хотя в каждом состоянии количество переходов не очень большое. Да и скорость ВСЕ РАВНО получается в 2-3 раза быстрее табличного flex-а.

> N*m (N -- мощность алфавита, m -- длина шаблона) не
> устраивают.
>
> Возможна ли компиляция регекспов (составление матрицы
> переходов для DFA) сразу для нескольких паттернов? Матрица
> переходов получается разреженной -- возможно ли ее
> эффективное сжатие (без существенной потери перформанса)?

Можешь глянуть на способы упаковки разреженных матриц в burg:
http://www.google.com/search?hs=PqK&hl=en&lr=&client=opera&rls=en&q=burg+code+generation&btnG=Search
Не пугайся слова кодогенерация, насколько я понимаю, она производится при помощи грамматик (на грамматиках регэкспы сделать можно).

> Очень нужныконкретные советы и ссылки на материалы по
> оптимизации регекспов. В гугле ничего по существу не нашел
> (по методам реализации движков для регекспов). Смотрю glibc
> -- пока не особо понятно...
Помогите с регулярным выражением 22.05.06 18:07  
Автор: lda Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Нужно вытащить из результатов поиска Яндекса 10 найденых урлов сайтов, есть код:
$yaurl = 'http://www.yandex.ru/yandsearch?text=слово&stype=www';
$page = file_get_contents($yaurl);
preg_match_all("
lt;li value[^<]*<[^<]*<[^ ]* [^ ]* href=\"([^\"]*)|i",$page,$out,PREG_PATTERN_ORDER);
foreach ($out[0] as $anchor)
{
echo $anchor."<br><br>";
}
Но массивы возврашаются пустые :(
как быть ?
1




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


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