Каков самый быстрый способ проверить, соответствует ли строка регулярному выражению в Ruby?
Моя проблема в том, что мне нужно «egrep» просмотреть огромный список строк, чтобы найти те, которые соответствуют регулярному выражению, заданному во время выполнения. Меня волнует только то, соответствует ли строка регулярному выражению, а не то, где она совпадает, и каково содержимое совпадающих групп. Я надеюсь, что это предположение можно использовать для сокращения времени, которое мой код тратит на сопоставление регулярных выражений.
Я загружаю регулярное выражение с помощью
pattern = Regexp.new(ptx).freeze
Я обнаружил, что string =~ pattern
это немного быстрее, чем string.match(pattern)
.
Есть ли другие уловки или ярлыки, которые можно использовать, чтобы сделать этот тест еще быстрее?