parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Производительность регулярных выражений

egr 25.05.2005 08:04 / 25.05.2005 08:06

Наткнулся тут на статью, в которой рассматривается производительность регулярных выражений, правда применительно к .NET:

http://wesnerm.blogs.com/net_undocumented/2005/05/regular_express.html

Интересен сам вывод, - для поиска простой строки (без всяких там символов шаблонов) в большом тексте, регулярные выражения быстрее чем строковые методы, т.е. вариант:
$s[In some cases, Regexes may actually perform better than typical handwritten code.]

^if(^s.match[cases]){

}
может быть быстрее чем вариант:
$s[In some cases, Regexes may actually perform better than typical handwritten code.]

^if(^s.pos[cases] >= 0){

}
т.к. регулярные выражения используют алгоритм Бойера-Мура где количество сравнений равно n/m (n - длина текста, m - длина шаблона), а строковые функции простой алгоритм поиска где n * m

Я не знаю насколько все это верно для парсера.