Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ruby.split(';\n';)不在新行上拆分_Ruby_String - Fatal编程技术网

ruby.split(';\n';)不在新行上拆分

ruby.split(';\n';)不在新行上拆分,ruby,string,Ruby,String,为什么不在每个“\n”上拆分此字符串?(红宝石) 您需要.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 A

为什么不在每个“\n”上拆分此字符串?(红宝石)


您需要
.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")

在Ruby中,字符串周围的单引号表示不解释转义字符。与C语言不同,C语言中的单引号表示单个字符。在这种情况下,
“\n”
实际上等同于
“\\n”

因此,如果要在
\n
上拆分,则需要将代码更改为使用双引号


.split(“\n”)

Ruby具有方法
String\u行
String行

返回一个枚举:

返回一个数组:


我没有针对您的场景进行测试,但我打赌它比手动选择换行符或正则表达式更有效。

.split(/\n/)

但是要注意的是,
#line
不会删除换行符,而
#split
会删除换行符:
“a\nb”。line=>[“a\n”,“b”]
“a\nb”。split(“\n”)=>[“a”,“b”]
同样,对于以文本模式(默认)读取的文件,换行序列会转换为
“\n”
()。因此,无需手动选择它们。跨平台使用
“\n”
.split(/\n/)