Quel est le moyen le plus rapide de vérifier si une chaîne de caractères correspond à une expression régulière en Ruby ?
Mon problème est que je dois "egrep" à travers une énorme liste de chaînes de caractères pour trouver celles qui correspondent à une regexp qui est donnée au moment de l'exécution. Je me préoccupe uniquement de savoir si la chaîne de caractères correspond à l'expression rationnelle, pas de savoir où elle correspond, ni quel est le contenu des groupes correspondants. J'espère que cette hypothèse pourra être utilisée pour réduire le temps que mon code passe à faire correspondre des regexps.
Je charge la regexp avec
pattern = Regexp.new(ptx).freeze
J'ai constaté que string =~ pattern
est légèrement plus rapide que string.match(pattern)
.
Y a-t-il d'autres astuces ou raccourcis à utiliser pour rendre ce test encore plus rapide ?