2012-12-11 13 views
6

मेरे पास एक रूबी फ़ाइल है जो फ़ाइलों को पढ़ती है और पाठ को split(' ') का उपयोग करके सरणी में विभाजित करती है। समस्या यह है कि इन पाठ फ़ाइलों में न्यूलाइन वर्ण होते हैं, और मैं उन नए अक्षरों को बनाए रखना चाहता हूं। उदाहरण के लिए, अगर मैं निम्नलिखित कोडव्हाइटस्पेस द्वारा एक स्ट्रिंग को विभाजित करें लेकिन n - रूबी

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

चलाने मैं क्यों न्यू लाइन चरित्र को दूर विभाजित करता

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

के उत्पादन में मिल सकता है? मैं अपने सरणी में \n कैसे बनाए रख सकता हूं?

+3

(एक भी जगह के साथ एक स्ट्रिंग) ' ''' का उपयोग करना खास है, पर्ल से जड़ों के साथ होने की संभावना:

आप इस मामले को हल करने के लिए चाहते हैं, रेगुलर एक्सप्रेशन का उपयोग। यह "जादू" * दस्तावेज में शामिल होना चाहिए - तो पहले वहां परामर्श लें। ध्यान दें कि विशेष प्रकृति * स्ट्रिंग * '" "' है, न कि * नियमित अभिव्यक्ति * '/ + /'। –

+7

_ अगर पैटर्न एक ही स्थान है, तो स्ट्रेट को व्हाइटस्पेस पर विभाजित किया गया है, जिसमें अग्रणी व्हाइटस्पेस और संगत व्हाइटस्पेस वर्णों के रनों को नजरअंदाज कर दिया गया है। Http://www.ruby-doc.org/core-1.9.3/String.html#method- i-split –

+0

@pst - धन्यवाद! यह हल हो गया। – fbonetti

उत्तर

12

आपके प्रश्न पर माइकल बर्कोस्की की टिप्पणी सही है।

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

क्या आप जानते हैं कि यह '/ /' के साथ क्यों काम करता है लेकिन '/ \ s /' के साथ नहीं? – oldergod

+5

@oldergod 's'' [\ t \ r \ n \ f] 'के बराबर है। – halfelf

+0

@ आधा मैं देखता हूं, धन्यवाद! – oldergod

संबंधित मुद्दे

 संबंधित मुद्दे