ruby .split('\ n')不会在新行上分裂
为什么这个string不能在每个“\ n”上分割? (ruby)
"ADVERTISING [7310]\n\t\tIRS NUMBER:\t\t\t\t061340408\n\t\tSTATE OF INCORPORATION:\t\t\tDE\n\t\tFISCAL YEAR END:\t\t\t0331\n\n\tFILING VALUES:\n\t\tFORM TYPE:\t\t10-Q\n\t\tSEC ACT:\t\t1934 Act\n\t".split('\n')
你需要.split("\n")
。 正确解释新行需要string插值,双引号是实现这一点的一种方式。
在Ruby中,一个string的单引号意味着转义字符不被解释。 不像在C中,单引号表示单个字符。 在这种情况下, '\n'
实际上等同于"\\n"
。
所以,如果你想分裂\n
你需要改变你的代码使用双引号。
.split("\n")
Ruby有方法String#each_line
和String#lines
返回一个枚举: http : //www.ruby-doc.org/core-1.9.3/String.html#method-i-each_line
返回一个数组: http : //www.ruby-doc.org/core-2.1.2/String.html#method-i-lines
我没有对你的情况进行testing,但我敢打赌,它会比手动select换行符更好。
或者一个正则expression式
.split(/\n/)
你不能使用单引号:
"ADVERTISING [7310]\n\t\tIRS NUMBER:\t\t\t\t061340408\n\t\tSTATE OF INCORPORATION:\t\t\tDE\n\t\tFISCAL YEAR END:\t\t\t0331\n\n\tFILING VALUES:\n\t\tFORM TYPE:\t\t10-Q\n\t\tSEC ACT:\t\t1934 Act\n\t".split("\n")