Ответ 1
Вам нужно .split("\n")
. Для правильной интерпретации новой строки необходима строковая интерполяция, а двойные кавычки - это один из способов сделать это.
Почему эта строка не разбивается на каждую "\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')
>> ["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 вокруг строки означает, что escape-символы не интерпретируются. В отличие от 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
Я не тестировал его против вашего сценария, но я уверен, что он будет работать лучше, чем вручную выбирать символы новой строки.
Или регулярное выражение
.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")