我正在阅读政府文本文件,其中$被用作分隔符,但我认为分隔符不重要...
所以这是预期的:
'a$b$c$d'.split('$')
# => ["a", "b", "c", "d"]
Run Code Online (Sandbox Code Playgroud)
在我正在使用的数据文件中,列标题行(第一行)被统一填充,即没有空标题,如:
'a$b$$d'
# or:
'a$b$c$'
Run Code Online (Sandbox Code Playgroud)
但是,每行可能有连续的尾随分隔符,例如:
"w$x$$\r\n"
Run Code Online (Sandbox Code Playgroud)
通常,我会阅读每一行并扼杀它.但是这会导致String#split将最后两个分隔符视为一列:
"w$x$$\r\n".chomp.split('$')
# => ["w", "x"]
Run Code Online (Sandbox Code Playgroud)
不做chomp得到我想要的结果,虽然我应该选择最后一个元素:
"w$x$$\r\n".split('$')
# => ["w", "x", "", "\r\n"]
Run Code Online (Sandbox Code Playgroud)
所以我要么:
这看起来真的很尴尬......我在这里错过了一些东西吗?
Bra*_*dan 18
您需要将负值作为第二个参数传递给split
.这可以防止它抑制尾随空字段:
"w$x$$\r\n".chomp.split('$', -1)
# => ["w", "x", "", ""]
Run Code Online (Sandbox Code Playgroud)
查看文档split
.