Sto cercando un modo per eseguire una corrispondenza regolare su una stringa in Ruby e farla cortocircuitare nella prima partita.Restituisce la prima corrispondenza di Ruby regex
La stringa che sto elaborando è lunga e da quello che sembra il modo standard (metodo match
) elaborerebbe il tutto, raccogliere ogni corrispondenza e restituire un oggetto MatchData che contiene tutte le corrispondenze.
match = string.match(/regex/)[0].to_s
Non sta facendo una corrispondenza e restituendo il primo risultato dietro le quinte? – Gishu
Dopo alcuni benchmark con varie stringhe di lunghezza e guardando la sorgente C, si scopre che Regex.match fa corto circuito e trova solo la prima corrispondenza. –
Neat, non sapeva di questa scorciatoia. – Pierre