Qual è il modo più veloce per verificare se una stringa corrisponde a un'espressione regolare in Ruby?
Il mio problema è che devo "egrep" attraverso un enorme elenco di stringhe per trovare quali sono quelle che corrispondono a un'espressione regolare che viene fornita in fase di esecuzione. Mi interessa solo se la stringa corrisponde alla regexp, non dove corrisponde, né quale sia il contenuto dei gruppi corrispondenti. Spero che questa ipotesi possa essere utilizzata per ridurre la quantità di tempo che il mio codice impiega per la corrispondenza delle espressioni regolari.
Carico la regexp con
pattern = Regexp.new(ptx).freeze
Ho scoperto che string =~ pattern
è leggermente più veloce di string.match(pattern)
.
Esistono altri trucchi o scorciatoie che possono essere utilizzati per rendere questo test ancora più veloce?