2010-12-20 7 views
21

मुझे लगता है कि यह एक आसान सवाल हैरुबी का उपयोग करके स्ट्रिंग में किसी निश्चित चरित्र के बाद मैं सबस्ट्रिंग को कैसे हटा सकता हूं?

मैं यह कैसे कर सकता हूं?

+1

अच्छी तरह से मेरा मानना ​​है कि शीर्षक स्वयं स्पष्टीकरणपूर्ण है। इसके अलावा, मैंने 13 घंटे पहले जैकब के जवाब को स्वीकार कर लिया, बस दूसरों को कुछ समय दें; आम तौर पर लोग एक ही पृष्ठ को ताज़ा नहीं करते हैं और उत्तर की प्रतीक्षा करते हैं। – JayX

+1

शीर्षक संपादित करना आपको लाभ नहीं पहुंचाता है। यह उन लोगों को लाभान्वित करना है जो एक ही समस्या का उत्तर ढूंढ रहे हैं। आपके शीर्षक और प्रश्न को स्पष्ट करने से कोई फर्क नहीं पड़ता कि वास्तव में आपको दर्द होता है क्योंकि अगर कोई इसका बेकार सोचता है तो कोई भी आपके प्रश्न को ऊपर नहीं उठाएगा। केवल मेरे दो सेंट्स। – DJTripleThreat

+1

सवाल यह नहीं बताता कि कितना समय सबस्ट्रिंग है, इसलिए यह वास्तव में अस्पष्ट है। स्पष्ट रूप से आप चाहते थे कि एक निश्चित चरित्र के पहले उदाहरण के बाद मुख्य स्ट्रिंग के अंत तक सभी प्रकार के विस्तार के बाद सबस्ट्रिंग शुरू हो जाए। हमें दिमाग पढ़ने की उम्मीद मत करो। एक अन्य टेलीपैथ आपके जैसा ही प्रश्न पूछ सकता है लेकिन एक अलग जवाब मांगता है क्योंकि वह केवल लंबाई 1 के एक सबस्ट्रिंग को हटाना चाहती है। –

उत्तर

31
new_str = str.slice(0..(str.index('blah'))) 

alt text

+3

str.slice (/.* r /) – eMgz

+1

यदि आप डिलीमीटर के अंत तक जाना चाहते हैं: 'new_str = str.slice (0 .. (str.index ('blah') + 'blah'.length)) ' – mvndaai

+3

क्या होता है यदि दिया गया वर्ण स्ट्रिंग में नहीं मिलता है? –

4
str = "Hello World" 
stopchar = 'W' 
str.sub /#{stopchar}.+/, stopchar 
#=> "Hello W" 
+0

दोनों काम करते थे, धन्यवाद! – JayX

23

मुझे लगता है कि "Part1?Part2".split('?')[0] पढ़ने में आसान है।

+3

के लिए खराब मान लेकिन फिर आपको वापस जोड़ना होगा? अगर आप इसे चाहते थे, तो मुझे नहीं लगता कि आपके सटीक प्रश्न का उत्तर दें। – Ivan

+0

मुझे यह जवाब पसंद है, क्योंकि आपको यह जांचना नहीं है कि "?" मौजूद है, यह अपवाद फेंकने वाले किसी भी अन्य स्ट्रिंग के साथ भी काम करता है। –

7

मैं हैरान कोई नहीं 'gsub'

irb> "truncate".gsub(/a.*/, 'a') 
=> "trunca" 

gsub के धमाके संस्करण स्ट्रिंग को संशोधित करने के लिए किया जा सकता का उपयोग करने का सुझाव दिया है।

+1

क्या आपका मतलब है '/ (? <= ए)। */'या'/a \ K। */', मिलान से' "एक" को बाहर करने के लिए? –

+0

@CarySwoveland हाँ सही है, या चार को फिर से पेश करें। अच्छा पकड़ा। – philant

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

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