|
|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/6577ef67c483.html, оценка из 5, голосов 10
|