Estoy buscando una forma de realizar una coincidencia de expresiones regulares en una cadena en Ruby y tener un cortocircuito en la primera coincidencia.Devolver la primera coincidencia de Ruby regex
La cadena que estoy procesando es larga y, por lo que parece, la forma estándar (método match
) procesará todo, recopilará cada coincidencia y devolverá un objeto MatchData que contenga todas las coincidencias.
match = string.match(/regex/)[0].to_s
¿Esto no está haciendo una coincidencia y devuelve el primer resultado detrás de escena? – Gishu
Después de algunos benchmarking con varias cadenas de longitud y mirando la fuente C, Regex.match hace cortocircuitos y solo encuentra la primera coincidencia. –
Limpio, no sabía acerca de este atajo. – Pierre