Sto leggendo da un file di testo governo in cui $ viene utilizzato come delimitatore, ma non credo che le questioni di carattere delimitatore ...Perché Ruby String # split non considera i delimitatori finali consecutivi come entità separate?
Quindi questo ci si aspetta:
'a$b$c$d'.split('$')
# => ["a", "b", "c", "d"]
Nel datafiles sto lavorando, la riga colonna intestazioni (prima riga) sono uniformemente compilati, cioè non v'è alcuna intestazione vuota, come in:
'a$b$$d'
# or:
'a$b$c$'
Tuttavia, ogni fila può avere delimitatori consecutivi trascinamento quali:
"w$x$$\r\n"
Di solito, ho letto ogni riga e chomp it. Ma questo fa sì che String # diviso per trattare gli ultimi due delimitatori come una colonna:
"w$x$$\r\n".chomp.split('$')
# => ["w", "x"]
non fare la chomp mi ottiene il risultato desiderato, anche se dovrei chomp l'ultimo elemento:
"w$x$$\r\n".split('$')
# => ["w", "x", "", "\r\n"]
Quindi, o devo:
- chomp la linea se i caratteri finali non nuova riga non sono delimitatori consecutivi
- preservare il ritorno a capo, fare la scissione, e quindi chomp l'elemento finale se i caratteri finali sono delimitatore consecutivi
Questo sembra davvero imbarazzante ... mi manca qualcosa qui?
Grazie ... per la cronaca, la documentazione è la prima volta che sono andato, ma ho visto il "limite" pseudoname per il secondo parametro, la mia mente ha deciso di chiudersi e non leggere per vedere tutte le opzioni oltre a positive numeri implicati. Grazie! – Zando