Я читаю от правительства текстового файла, в котором $ используется в качестве разделителя, но я не думаю, что разделителем вопросов характера ...Почему Ruby String # split не обрабатывает последовательные ограничивающие разделители как отдельные объекты?
Так что, как ожидается:
'a$b$c$d'.split('$')
# => ["a", "b", "c", "d"]
В файлы данные Я работаю с, в заголовках столбцов строки (первая строка) равномерно заполнены, то есть нет пустого заголовка, как в:
'a$b$$d'
# or:
'a$b$c$'
Тем не менее, каждая строка может иметь последовательные разделители хвостовые, такие как:
"w$x$$\r\n"
Обычно я читаю каждую строку и chomp it. Но это приводит строки # расколоть для лечения последних двух разделителей в один столбец:
"w$x$$\r\n".chomp.split('$')
# => ["w", "x"]
Не делает Chomp получает мне желаемый результат, хотя я должен грызть последний элемент:
"w$x$$\r\n".split('$')
# => ["w", "x", "", "\r\n"]
Так как Я должен:
- Chomp линии если окончательные, не символы перевода строки не являются последовательными разделителями
- сохранить символ новой строки, делать раскол, а затем грызть последний элемент IF конечные символы являются последовательным разделителем
Это кажется очень неудобно ... я что-то пропустил?
Спасибо ... за запись, документы - это то место, где я впервые поехал, но я увидел псевдоним «предел» для второго параметра, мой разум решил выключить себя и не прочитать, чтобы увидеть все варианты, кроме положительных числа. Благодаря! – Zando