रीजिक्स उपयोग जीएसबी के साथ मेरी सभी स्ट्रिंग हटाएं, क्या कोई छोटा रास्ता है? string.gsub(/\A.*\//,'')
क्या रूबी में रेगेक्स हटा है?
उत्तर
एक तरह से अपनी स्वयं की लघु विधियों को जोड़ने के लिए है:
class String
def del(regexp)
gsub(regexp,'')
end
def del!(regexp)
gsub!(regexp,'')
end
end
आमतौर पर यह कोड,
ध्यान रखें एक lib/निर्देशिका में जाना होगा उदाहरण lib/स्ट्रिंग-extensions.rb के लिए कि कुछ प्रोग्रामर वास्तव में इसे नापसंद करते हैं क्योंकि यह बंदर-पैचिंग है। मुझे व्यक्तिगत रूप से परियोजनाओं के लिए यह पसंद है क्योंकि यह समझने में आसान बनाता है - एक बार मेरे पास "डेल" विधि हो जाने पर, मैं जल्दी से देख सकता हूं कि उस कॉल को केवल regexp को हटाया जा रहा है।
+1, हालांकि मुझे आश्चर्य है कि कोई भी इसे वोट नहीं देता है। –
मुझे ऐसा नहीं लगता है।
स्ट्रिंग :: हटाए गए वर्ण हटाएं, और रेगेक्स से मेल नहीं खाता है, यह एक पूरी तरह से अलग दृष्टिकोण है।
एकमात्र तरीका मैं आपके "छोटे" की रेखा बनाने के बारे में सोच सकता हूं string.gsub!(/\A.*\//,'')
(वहां बैंग पर ध्यान दें) का उपयोग करना है।
जाने का रास्ता है कि, मुझे लगता है :)
@Vache हाहा, ठीक है। इसे सही किया गया: पी – Castilho
आप के बजाय रखने स्ट्रिंग आप करना चाहते हैं का हिस्सा निर्दिष्ट कर सकते हैं। । ।
string[/[^\/]*$/]
उन तीन पात्रों को वास्तव में आप के पास मिल रहा है? –
लॉल बहुत सारे स्ट्रिंग डिलीट कर रहा है। लेकिन gsub के माध्यम से ऐसा करना, ऐसा लगता है कि मैं इसे गलत कर रहा हूं। यह string.delete के माध्यम से किया जाना चाहिए, नहीं? –
string.delete केवल वही अक्षर लेता है जो कोई हटाना नहीं है, कोई regexp नहीं है। string.slice! regexp के आधार पर एक स्ट्रिंग के हिस्से को हटाने के लिए इस्तेमाल किया जा सकता है लेकिन यह अब gsub है ... – Pafjo