Самый быстрый способ проверить, соответствует ли строка регулярному выражению в ruby?

Каков самый быстрый способ проверить, соответствует ли строка регулярному выражению в Ruby?

Моя проблема в том, что мне приходится «egrep» просматривать огромный список строк, чтобы найти те, которые соответствуют регулярному выражению, заданному во время выполнения. Меня волнует только то, соответствует ли строка регулярному выражению, а не то, где она совпадает, и не то, каково содержимое соответствующих групп. Я надеюсь, что это предположение можно использовать для сокращения времени, затрачиваемого моим кодом на сопоставление регулярных выражений.

Я загружаю регулярное выражение с

pattern = Regexp.new(ptx).freeze

Я обнаружил, что string =~ patternнемного быстрее, чем string.match(pattern).

Есть ли другие приемы или ярлыки, которые можно использовать, чтобы сделать этот тест еще быстрее?

81
задан gioele 26 July 2019 в 13:27
поделиться