¿Cuál es la forma más rápida de comprobar si una cadena coincide con una expresión regular en Ruby?
Mi problema es que tengo que "egrep" a través de una enorme lista de cadenas para encontrar cuáles son las que coinciden con una expresión regular que se proporciona en tiempo de ejecución. Solo me importa si la cadena coincide con la expresión regular, no dónde coincide ni cuál es el contenido de los grupos coincidentes. Espero que esta suposición se pueda utilizar para reducir la cantidad de tiempo que mi código pasa haciendo coincidir expresiones regulares.
Cargo la expresión regular con
pattern = Regexp.new(ptx).freeze
He descubierto que string =~ pattern
es un poco más rápido que string.match(pattern)
.
¿Hay otros trucos o atajos que puedan usarse para hacer esta prueba aún más rápida?