2009-03-03 5 views
5

Я считаю, что функция Ruby's each немного запутанна. Если у меня есть строка текста, цикл each даст мне каждое слово с разделителями пространства, а не каждый отдельный символ.Как разобрать строку с текстом в Ruby?

Так какой лучший способ получить разделы строки, которые ограничены символом табуляции. На данный момент у меня есть:

line.split.each do |word| 
... 
end 

, но это не совсем правильно.

ответ

16

Я не уверен, что я вполне понимаю ваш вопрос, но если вы хотите разделить строки на символы табуляции, можно указать, что в качестве аргумента для разделения:

line.split("\t").each ... 

или вы можете указать его в качестве регулярное выражение:

line.split(/\t/).each ... 

Каждый в основном только перебирает все элементы массива, и сплит производит массив из строки.

+0

Это нормально для простых корпусов. Но это не так просто. Существует ряд крайних случаев, когда контент поступает из внешнего источника. Новые строки, escape-последовательности, кавычки и т. Д. Настолько различны между различными приложениями. –

Смежные вопросы