Qual é a maneira mais rápida de verificar se uma string corresponde a uma expressão regular em Ruby?
Meu problema é que preciso "egrep" por meio de uma lista enorme de strings para descobrir quais são as que correspondem a um regexp fornecido em tempo de execução. Eu só me preocupo se a string corresponde ao regexp, não onde ela corresponde, nem qual é o conteúdo dos grupos correspondentes. Espero que essa suposição possa ser usada para reduzir a quantidade de tempo que meu código gasta combinando expressões regulares.
Eu carrego o regexp com
pattern = Regexp.new(ptx).freeze
Eu descobri que string =~ pattern
é um pouco mais rápido do que string.match(pattern)
.
Existem outros truques ou atalhos que podem ser usados para tornar este teste ainda mais rápido?