Programing

ruby .split ( '\ n') 새 줄에서 분할되지 않음

crosscheck 2020. 10. 18. 08:26
반응형

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

당신은 필요합니다 .split("\n"). 새 줄을 올바르게 해석하려면 문자열 보간이 필요하며 큰 따옴표는이를 수행하는 한 가지 방법입니다.


Ruby에서 문자열 주위의 작은 따옴표는 이스케이프 문자가 해석되지 않음을 의미합니다. 작은 따옴표가 단일 문자를 나타내는 C와 달리. 이 경우 '\n'실제로 "\\n".

따라서 분할 \n하려면 큰 따옴표를 사용하도록 코드를 변경해야합니다.

.split("\n")


루비에는 방법이 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")

참고 URL : https://stackoverflow.com/questions/16406381/ruby-split-n-not-splitting-on-new-line

반응형