2013-05-06 4 views
51

Warum wird diese Zeichenfolge nicht auf jedem "\ n" aufgeteilt? (RUBIN)ruby ​​.split (' n') nicht auf neue Zeile aufteilen

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

Antwort

116

Sie benötigen .split("\n"). Stringinterpolation ist erforderlich, um die neue Zeile richtig zu interpretieren, und doppelte Anführungszeichen sind eine Möglichkeit, dies zu tun.

1

Sie können nicht einfache Anführungszeichen für diesen Einsatz:

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

In Ruby einfache Anführungszeichen um eine Zeichenkette bedeutet, dass Escape-Zeichen nicht interpretiert werden. Anders als in C, wo einfache Anführungszeichen ein einzelnes Zeichen bezeichnen. In diesem Fall entspricht '\n' tatsächlich "\\n".

Wenn Sie also auf \n teilen möchten, müssen Sie Ihren Code ändern, um doppelte Anführungszeichen zu verwenden.

.split("\n")

2

oder ein regulärer Ausdruck

.split(/\n/)