makis
Новичок
Сверхдолгое выполнение регулярного выражения
Здравствуйте.
Столкнулся с необходимостью подсчёта определённых слов в тексте. Однако появилась некоторая проблема, а именно: если в регулярном выражении в паттерне перед словом, которое ищется, поставить "\s" (пробел), то эта регулярка будет очень долго выполняться - ведь она будет искать совпадения при каждом встречном пробеле.
Сложность в том, что обязательно нужно проверять впереди стоящий пробел. Попадаются весьма длинные слова, часть которых совпадает с тем словом, которое ищется регэкспом. Например, нужно найти слово "контроллер". Если в начале паттерна я не поставлю пробел, то слово "микроконтроллер" тоже будет учтено, а оно здесь абсолютно не должно быть.
Подскажите как можно в данном случае поступить. Спасибо.
Здравствуйте.
Столкнулся с необходимостью подсчёта определённых слов в тексте. Однако появилась некоторая проблема, а именно: если в регулярном выражении в паттерне перед словом, которое ищется, поставить "\s" (пробел), то эта регулярка будет очень долго выполняться - ведь она будет искать совпадения при каждом встречном пробеле.
PHP:
preg_match_all("|\s{1}(".preg_quote($word_arr[$i]).")[\s\.,:;?!]{1}|i", $text, $matches);
Подскажите как можно в данном случае поступить. Спасибо.
