2015-03-12 6 views
8

मैं gsub"bad""good" के लिए स्वैप करने के लिए gsub कर रहा हूं। क्या capitalize का उपयोग करने का कोई तरीका है, तो यह निम्न और ऊपरी मामले दोनों को स्वैप करेगा? या मुझे def दो बार लिखना होगा?क्या केस-असंवेदनशील 'gsub` करना संभव है?

def add_more_ruby(string) 
    string.gsub('bad','good').capitalize 
end 
+1

आप एक विधि का एक व्यवहार के बारे में सुनिश्चित नहीं हैं, तो यह बेहतर नहीं है, यह वर्णन करने में एक जंगली अनुमान लगाने के लिए। यहां, 'पूंजीकरण' का आपका उल्लेख उस चीज़ के लिए अप्रासंगिक है जो आप वास्तव में करना चाहते थे, और यह आपके प्रश्न को समझने में बहुत मुश्किल बना रहा है। इसके बजाय, सामान्य शब्दों में आप क्या करना चाहते हैं उसे लिखें। – sawa

+2

क्या आप 'खराब' को 'अच्छा' या 'अच्छा' के साथ प्रतिस्थापित करने की अपेक्षा करते हैं? – Stefan

उत्तर

24

आप String के बजाय Regexp पारित कर सकते हैं, i विकल्प है कि इंगित करता है कि इस regexp मामले असंवेदनशील है साथ:

def add_more_ruby(string) 
    string.gsub(/bad/i, 'good') 
end 

टिप्पणी है कि यह न केवल 'bad' और 'BAD', लेकिन यह भी विकल्प होगा, उदाहरण के लिए , 'bAd'। आप केवल सभी अपरकेस या लोअरकेस-स्थानापन्न करना चाहते हैं, तो आप कर सकते हैं:

string.gsub(/bad|BAD/, 'good') 
+0

आपको बहुत बहुत धन्यवाद। मेरा समय बचाया – Mano

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