2013-05-16 3 views
21

के अंदर नामित कैप्चर समूहों का उपयोग करना मैं रूबी में एक ब्लॉक के अंदर एक नामित कैप्चर समूह का उपयोग करने की कोशिश कर रहा हूं। $1 अभी भी काम करता है, लेकिन मैं इसे दिए गए नाम का उपयोग करके इसका संदर्भ देना चाहता हूं।रुबी जीएसबी ब्लॉक (रेगेक्स)

"foo /(bar)".gsub(/(?<my_word> \(.*?\))/x) do |match| 
    puts "$1 = #{$1} and $my_word = #{$my_word}" 
end 

अपेक्षित: $1 = (bar) and $my_word = (bar)

उत्तर

26

आप देख रहे हैं के लिए

"foo /(bar)".gsub(/(?<my_word> \(.*?\))/x) do |match| 
    puts "$1 = #{$1} and $my_word = #{$~[:my_word]}" 
end 
+2

बहुत बढ़िया, धन्यवाद। मैंने पहले कभी उस वाक्यविन्यास की तरह कुछ नहीं देखा है। – Chris

+0

क्या आप मुझे एक अच्छा रेगेक्स ट्यूटोरियल लिंक दे सकते हैं? मुझे 'regex' के बारे में' शून्य' पता है। :( –

+1

http://www.regular-expressions.info/tutorial.html – oldergod