2012-12-11 89 views
6

我有一個ruby文件,它讀取文件並使用split(' ')將文本拆分成數組。問題是這些文本文件包含換行符,我想保留這些換行符。例如,如果我運行下面的代碼按空格拆分字符串,但保留 n - Ruby

"Lorem ipsum\ndolor sit amet".split(' ') 

我得到的

["Lorem", "ipsum", "dolor", "sit", "amet"] 

輸出爲什麼拆分刪除換行符?我如何在我的陣列中保留\n

+3

使用'」「'(字符串用一個空格)是特殊的,可能從Perl的根源。這個「魔術」*應該包含在文檔中 - 所以請先在那裏諮詢。請注意特殊性質是* string *'「」',而不是*正則表達式*'/ + /'。 – 2012-12-11 02:27:15

+7

_如果pattern是一個單獨的空格,那麼str將被分割爲空格,前導空格和忽略連續空白字符的運行._ http://www.ruby-doc.org/core-1.9.3/String.html#method- i-split –

+0

@pst - 謝謝!這解決了它。 – fbonetti

回答

12

Michael Berkowski對你的問題的評論是正確的。

如果要解決這種情況下,使用正則表達式:

"Lorem ipsum\ndolor sit amet".split(/ /) 
#=> ["Lorem", "ipsum\ndolor", "sit", "amet"] 
+0

你知道它爲什麼用'/ /'而不用'/ \ s /'嗎? – oldergod

+5

@oldergod'\ s'等價於'[\ t \ r \ n \ f]'。 – halfelf

+0

@halfelf我明白了,謝謝! – oldergod

相關問題