如何在Ruby中解析一个以制表符分隔的文本行?

7
我觉得Ruby的each函数有些令人困惑。如果我有一行文本,使用each循环会给我每个以空格分隔的单词而不是每个单独的字符。
那么,最好的方法是如何检索由制表符分隔的字符串部分呢?目前我的写法是:
line.split.each do |word|
...
end

但这并不完全正确。
1个回答

19

我不确定我完全理解你的问题,但是如果你想在制表符上拆分行,你可以将其指定为split的参数:

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

或者您可以将其指定为正则表达式:

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

每个函数基本上只是遍历数组中的所有项,而split则从字符串生成一个数组。


1
这对于简单的情况来说还好。但并不是那么简单。当内容来自外部源时,有许多边缘情况需要考虑。换行符、转义序列、引号等在不同的应用程序之间都是如此不同。 - Dmytrii Nagirniak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接