Ruby.split('\n') не разбивается на новую строку - программирование
Подтвердить что ты не робот

Ruby.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"]
4b9b3361

Ответ 1

Вам нужно .split("\n"). Для правильной интерпретации новой строки необходима строковая интерполяция, а двойные кавычки - это один из способов сделать это.

Ответ 2

В одиночных кавычках Ruby вокруг строки означает, что escape-символы не интерпретируются. В отличие от C, где одинарные кавычки обозначают один символ. В этом случае '\n' фактически эквивалентно "\\n".

Итак, если вы хотите разделить на \n, вам нужно изменить свой код, чтобы использовать двойные кавычки.

.split("\n")

Ответ 3

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

Я не тестировал его против вашего сценария, но я уверен, что он будет работать лучше, чем вручную выбирать символы новой строки.

Ответ 4

Или регулярное выражение

.split(/\n/)

Ответ 5

Вы не можете использовать одинарные кавычки для этого:

"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")