LINUX.ORG.RU

уточнение

Или может быть существуют высокопефомансные либы, реализующие что-нибудь похожее на regexp (как пример: сопоставление имени файла по маске, ну только что-нибудь более функциональное, не настолько примитивное).

LORd
() автор топика

pcre, boost::regex. Да много их.

Или может быть существуют высокопефомансные либы, реализующие что-нибудь похожее на regexp (как пример: сопоставление имени файла по маске, ну только что-нибудь более функциональное, не настолько примитивное).

Обычно пишут парсер. flex/bison/boost::spirit, в руки.

mv ★★★★★
()

Друзья,

гуглить я тоже умею. Меня интересует именно производительность. Я пытался использовать QRegExp, но для моей задачи он оказался слишком медленный. Поэтому я и ищу альтернативу: может быть даже менее функциональную, чем regexp, но если она будет в несколько раз быстрее QRegExp-а — она мне подходит.

LORd
() автор топика
Ответ на: комментарий от LORd

RE2 должен быть достаточно быстрым (on-the-fly DFA engine), но он не поддерживает backreferences. Regexp engine в Tcl --- тоже быстрый (hybrid no-epsilon-NFA/DFA), но он не поддерживает lookbehind и captures/backreferences в lookahead-ах (и может медленно обрабатывать сложные lookaheads), также в нём есть несколько bug-ов, которые никто не исправляет. PCRE тоже быстр (backtracking engine/DFA engine, много оптимизаций), но случаи pathological backtracking встречаются на практике, поэтому изредка придётся оптимизировать свои regex-ы.

anonymous
()

самый быстрый PCRE, проверено электрониками

shty ★★★★★
()
Ответ на: комментарий от LORd

Я подозреваю что для твоей задачи

нужно не библиотеку искать, а напейсать свой узкоспециализированный парсер, который заведомо будет быстрее если руки расположены как и полагается гуманоидам

wfrr ★★☆
()

Спасибо всем за советы

LORd
() автор топика
Ответ на: Я подозреваю что для твоей задачи от wfrr

У меня палка о 2-х концах: собственно шаблон регэкспа (условие на строку) вводит пользователь. Поэтому мне, помимо парсера, еще и модель какую-то придется изобретать + описать ее пользователю. Вот я и подумал, может уже существует какой-то более легковесный аналог, чтобы не велосипедить.

LORd
() автор топика
Ответ на: комментарий от LORd

> Меня интересует именно производительность

яндекс приводил результаты тестов своей PIRE — оно рвало всё, что здесь советуют.

name_no ★★
()
Ответ на: комментарий от LORd

если лузер вводит не режексп, а чтото типа «*бесплат* *кача*» или «*.htm?» то это делается не режекспами

wfrr ★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.