|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Oleg Eterevsky 2:5030/924 24 Jan 2002 18:17:40 To : All Subject : Обработка рег. выражений в Perl --------------------------------------------------------------------------------
Читаю я сейчас книгу Дж. Фридла "Регулярные выражения". Судя по ней, регулярные
выражения в Perl обрабатываются с помощью недетерменированного конечного
автомата, что в свою очередь означает, что существуют сравнительно короткие (ну,
порядка 10 символов при строке порядка 100 символов) регулярные выражения, на
которых Perl будет "подвисать", точнее, работать очень долго. Я попробовал
регулярное выражение, приведенное в книге, и Perl, вопреки тому, что написано в
книге обработал его мгновенно. Я попробовал несколькими способами усложнить
тест, но регулярное выражение все равно обрабатывалось более-менее мгновенно. В
связи с этим, интересный вопрос: был ли заменен механизм обработки регулярных
выражений со временеи написания книги (тогда последней версией Perl'а была
5.003, я тестировал на 5.6.1)? В changelog'ах я ничего не нашел. Судя по
исходникам regcomp.c и regexec.c, используется HКА. Если это действительно так,
то может ли кто-нибудь привести пример регулярного выражения, на котором Perl
подвисает? Теоретически это должно быть возможно. Есть ли у кого-нибудь
какая-нибудь свежая и объективная информация на эту тему?
С уважением, Олег.
. Войны, конечно, нет и не предвидится.
. Hо так писать нельзя: король обидится.
--- GoldED+/W32 1.1.5-20011130
* Origin: Don't delay, write today! (2:5030/924)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/23013c501f85.html, оценка из 5, голосов 10
|