Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Andrey Sapozhnikov                   2:5020/400     25 Jan 2002  05:35:05
 To : Oleg Eterevsky
 Subject : Re: Обработка рег. выражений в Perl
 -------------------------------------------------------------------------------- 
 
 
 "Oleg Eterevsky" <Oleg.Eterevsky@f924.n5030.z2.fidonet.org> wrote in message
 news:1011883909@f924.n5030.z2.ftn...
 
 > Читаю я сейчас книгу Дж. Фридла "Регулярные выражения". Судя по ней,
 
 регулярные
 
 > выражения в Perl обрабатываются с помощью недетерменированного конечного
 > автомата, что в свою очередь означает, что существуют сравнительно
 
 короткие
 
 > (ну, порядка 10 символов при строке порядка 100 символов) регулярные
 
 выражения,
 
 > на которых Perl будет "подвисать", точнее, работать очень долго. Я
 
 попробовал
 
 > регулярное выражение, приведенное в книге, и Perl, вопреки тому, что
 
 написано в
 
 > книге обработал его мгновенно. Я попробовал несколькими способами
 
 усложнить
 
 > тест, но регулярное выражение все равно обрабатывалось более-менее
 
 мгновенно. В
 
 > связи с этим, интересный вопрос: был ли заменен механизм обработки
 
 регулярных
 
 > выражений со временеи написания книги (тогда последней версией Perl'а была
 > 5.003, я тестировал на 5.6.1)? В changelog'ах я ничего не нашел. Судя по
 > исходникам regcomp.c и regexec.c, используется HКА. Если это действительно
 
 так,
 
 > то может ли кто-нибудь привести пример регулярного выражения, на котором
 
 Perl
 
 > подвисает? Теоретически это должно быть возможно. Есть ли у кого-нибудь
 > какая-нибудь свежая и объективная информация на эту тему?
 
 Hаверное пример какой-то кривой в той книге. Вот Вам строка в 100 символов и
 регулярное выражение в 9 символов. Выполняться будет очень долго.
 
 $a = 'ab' x 50;
 $a =~ /(a.*){50}/;
 
 Андрей
 >
 >                                         С уважением, Олег.
 >  .                Войны, конечно, нет и не предвидится.
 >  .                Hо так писать нельзя: король обидится.
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Обработка рег. выражений в Perl   Oleg Eterevsky   24 Jan 2002 18:17:40 
 Re: Обработка рег. выражений в Perl   Andrey Sapozhnikov   25 Jan 2002 05:35:05 
Архивное /ru.cgi.perl/6577ef67c483.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional