2012-12-11 20 views
6

Dosyaları okuyan ve metni split(' ') kullanarak bir diziye bölen bir ruby ​​dosyanız var. Sorun şu ki, bu metin dosyaları yeni satır karakterleri içeriyor ve bu yeni satır karakterlerini korumak istiyorum. Aşağıdaki koduBir dizgiyi boşluk ile ayırın ama saklayın n - Ruby

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

çalıştırırsanız Örneğin, yeni satır karakteri kaldırın bölünmüş gelmez Neden

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

çıktısını almak? Dizimde \n'u nasıl koruyabilirim?

+3

(tek boşluk ile bir dize) ' '' kullanılması özeldir, Perl gelen kökleri ile muhtemel:

Bu durumda geçici bir çözüm istiyorsanız

, normal bir ifade kullanabilirsiniz. Bu "sihir" * dokümanlarda ele alınmalıdır - bu yüzden önce oraya danışın. Özel doğanın * * * "" "olduğunu ve * normal ifadenin * */+/* olmadığını unutmayın. –

+7

_If desen tek bir boşluk, str, boşlukta ve boşluklu karakter boşlukları yok sayılırken, beyaz boşlukta ikiye bölündü. Http://www.ruby-doc.org/core-1.9.3/String.html#method- I-split –

+0

@pst - Teşekkürler! Bu çözüldü. – fbonetti

cevap

12

Michael Berkowski'nin sorunuza ilişkin yorumu doğrudur.

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

Neden// 'ile çalıştığını biliyor musunuz, fakat'/\ s/'ile çalışmıyor? – oldergod

+5

@oldergod '\ s',' [\ t \ r \ n \ f] 'ile eşdeğerdir. – halfelf

+0

@halfelf Görüyorum, teşekkürler! – oldergod

İlgili konular