Attualmente sto cercando di rexp una stringa in più variabili. stringa Esempio:
Ruby Regexp corrispondenza gruppo, assegnare variabili su 1 riga
ryan_string = "RyanOnRails: This is a test"
ho abbinato con questa espressione regolare, con 3 gruppi:
ryan_group = ryan_string.scan(/(^.*)(:)(.*)/i)
Ora per accedere ogni gruppo che devo fare qualcosa di simile:
ryan_group[0][0] (first group) RyanOnRails
ryan_group[0][1] (second group) :
ryan_group[0][2] (third group) This is a test
Questo sembra abbastanza ridicolo e sembra che sto facendo qualcosa di sbagliato. Mi aspetto che sia in grado di fare qualcosa del genere:
g1, g2, g3 = ryan_string.scan(/(^.*)(:)(.*)/i)
È possibile? O c'è un modo migliore di come lo sto facendo?
Attenzione che se non vengono trovate corrispondenze, la corrispondenza restituisce nil e ottieni un errore NilError. Se siete in Rails, suggerisco di cambiare: 'uno, due, tre = String.match (/(^.*)(:)(.*)/ i) .captures' in: 'uno, due, tre = string.match (/(^.*)(:)(.*)/ i) .try (: acquisisce)' –
@AndreaSalicetti Ho modificato il mio post, non lo sono aggiungendo il codice specifico di Rails, così l'ho modificato con una versione per gestire l'oggetto nil restituito –
Pulito e pulito, va bene! –