121 votes

Le moyen le plus rapide de vérifier si une chaîne de caractères correspond à un regexp en ruby ?

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 ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X