не секрет, что применение регулярных выражений делится на два этапа:
- предкомпиляция выражения;
- выполнение скомпилированного выражения с целевым текстом
каждый из этих этапов отнимает драгоценные "тики" процессора... при разборе больших текстов время компиляции несущественно, но для коротких строк это время значительно превосходит время выполнения и тут уже не поможет никакая оптимизация регулярного выражения... ситуация усугубляется для случая, когда одно выражение применяется в цикле (например, по массиву строк) - каждый вызов приводит к ненужной перекомпиляции одного и того же выражения
отсюда возникает потребность в ф-ции предварительной компляции выражения в хэндл, который может затем применяться в StringRegExp/StringRegExpReplace наравне с самим выражением, вполне вероятно потребуется парная ф-ция закрытия хэндла/освобождения памяти
как следует из PCRE man page, движок поддерживает эту возможность
Добавлено:
- предкомпиляция выражения;
- выполнение скомпилированного выражения с целевым текстом
каждый из этих этапов отнимает драгоценные "тики" процессора... при разборе больших текстов время компиляции несущественно, но для коротких строк это время значительно превосходит время выполнения и тут уже не поможет никакая оптимизация регулярного выражения... ситуация усугубляется для случая, когда одно выражение применяется в цикле (например, по массиву строк) - каждый вызов приводит к ненужной перекомпиляции одного и того же выражения
отсюда возникает потребность в ф-ции предварительной компляции выражения в хэндл, который может затем применяться в StringRegExp/StringRegExpReplace наравне с самим выражением, вполне вероятно потребуется парная ф-ция закрытия хэндла/освобождения памяти
как следует из PCRE man page, движок поддерживает эту возможность
Добавлено:
Сообщение автоматически объединено: