ruby-doc.org प्रतिस्थापन पैटर्न के बारे में से
gsub
के लिए:
दृश्यों \ 1 \ 2, और इतने पर मैच
में लगातार समूहों को जोड़ लिए इस्तेमाल किया जा सकता है
इसमें अनुक्रम \'
शामिल है, जिसका अर्थ है "जो कुछ मैंने मिलान किया है उसके बाद सबकुछ"।
या तो "\\'"
या '\\\''
दोनों \'
(याद \
दोनों डबल और एकल उद्धृत तार में भाग निकले हो गया है कि निर्माण करते हैं, कि '
एकल उद्धृत तार में भाग निकले जा करने के लिए है, इसलिए इस में एकल उद्धरण का उपयोग कर है मामला वास्तव में चीजें और वर्बोज़ बनाता है)। उदा .:
puts "before*after".gsub("*", "\\'")
"beforeafterafter"
puts "before*after".gsub("*", '\\\'')
"beforeafterafter"
क्या आप gsub
तो देखना चाहता हूँ वास्तव में \\'
, जो "\\\\'"
और '\\\\\''
दोनों द्वारा उत्पादित किया जा सकता है। तो:
puts s.gsub("'", "\\\\'")
children\'s world
puts s.gsub("'", '\\\\\'')
children\'s world
या आप इस तथ्य का लाभ ले सकता है आप \
साथ एक बहुत कुछ करना है, तो यह है कि आप बैकस्लैश की दोबारा से बचने के लिए की जरूरत नहीं है जब आप /.../
(या %r{...}
) का उपयोग करें:
puts s.gsub("'", /\\'/.source)
children\'s world
स्रोत
2009-04-04 13:13:52
यह बच्चों को \\ की दुनिया प्राप्त करता है। – Jirapong
नहीं, यह नहीं है। – Magnar
@ जिरापोंग जिस कारण से आप सोच रहे हैं वह \\ है क्योंकि रेल कंसोल स्ट्रिंग प्रदर्शित नहीं करता है, लेकिन यह दिखाता है कि कोई स्ट्रिंग कैसे बनाएगा। तो यदि आप "\\" दर्ज करते हैं, तो यह "\\" ईवेंट प्रदर्शित करने जा रहा है, हालांकि इसमें एक बैकस्लैश वाला स्ट्रिंग है। स्ट्रिंग में वास्तव में क्या है, यह जानने के लिए, आपको ** puts ** का उपयोग करना चाहिए। उदाहरण के लिए, "\\" एक बैकस्लैश प्रदर्शित करेगा। – Brian