मैं निम्नलिखित मिल गया है के मामले बदलें?एक प्रतिस्थापन
कुछ की तरह: sed -e 's/\(abc\)/\U\1/'
रूबी में यह संभव है?
मैं निम्नलिखित मिल गया है के मामले बदलें?एक प्रतिस्थापन
कुछ की तरह: sed -e 's/\(abc\)/\U\1/'
रूबी में यह संभव है?
gsub दस्तावेज़ देखें: | मैच
str.gsub (पैटर्न) {| ब्लॉक} → new_str
ब्लॉक फॉर्म में, वर्तमान मिलान स्ट्रिंग पैरामीटर के रूप में पारित की जाती है, और चर $ 1, $ 2, $ `, $ &, और $ 'उचित रूप से सेट की जाएगी। ब्लॉक द्वारा लौटाया गया मूल्य प्रत्येक कॉल पर मैच के लिए प्रतिस्थापित किया जाएगा।
"a lower upper b".gsub(/(lower) (upper)/){|s| $1 + " " + $2.upcase}
gsub
एक ब्लॉक तर्क लेता है, जो प्रत्येक मैच के लिए चलाया जाता है, मैच में पैरामीटर के रूप में गुजरता है - इस प्रकार आप जो भी चाहें कर सकते हैं! उदाहरण के लिए, एक स्ट्रिंग में हर शब्द को कैपिटल के लिए:
"ruby blocks are pretty awesome".gsub(/\w+/) do |match|
match.capitalize
end
#=> "Ruby Blocks Are Pretty Awesome"
मैं रूबी के लिए एक नौसिखिया हूँ - बस इसे का उपयोग शुरू किया कुछ दिन पहले, लेकिन शायद यह काम करेगा? आप चर बोक में $n
नामित के रूप में backreferences प्राप्त करने में सक्षम हो जाएगा:
new_text = text.gsub(/(lower) (upper)/){
"#{$1} #{$2.upcase}"
}
अद्यतन
ऐसा लगता है कि ब्रैंडन के बारे में 8 मिनट से यह करने के लिए मुझे हरा :) यह काफी एक ही बात है AFAIK
धन्यवाद, कि मैं वास्तव में क्या ढूंढ रहा था। –