Если у меня есть неизвестное количество регулярных выражений (нуль или больше, и, надеюсь, менее нескольких тысяч), что является эффективным способом поиска того, что соответствует данной строке?Эффективно искать коллекцию регулярных выражений
Какие типы контейнеров, алгоритмы и/или структуры данных я должен использовать? Разве это отличается, если я хочу найти единственное совпадающее регулярное выражение, чем если бы я хотел, чтобы все регулярные выражения совпадали? Разве эти люди не хотят знать, сколько из них соответствует?
Позвольте мне сказать это другим образом. Предположим, у меня есть пользователь, вводящий произвольные строки, и у меня есть контейнер с регулярными выражениями. Я могу спроектировать контейнер любым способом, который я выбираю, и поиск любым способом, который я выбираю. Что делать, если мне нужен список всех регулярных выражений, которые соответствуют пользовательскому вводу из этой коллекции, как бы я это сделал? Что, если я просто хотел узнать, сколько матчей существует? Что, если я просто хотел бы обеспечить уникальность матча?
Объедините их в одно выражение, «захватывая» оригинальные выражения по мере необходимости. – greybeard
Являются ли эти (математически говорящие) регулярные выражения или представляют собой симусовый случайный набор функций соответствия Turing, как в большинстве библиотек регулярных выражений? И являются ли они точными или подстрочными матчами? – rici
@rici Режимы PCRE/ECMAScript и точные совпадения. Но мне любопытно ответы на все варианты. – Sqeaky