ध्यान दें कि Jon L.'s answer में Regexp.quote
महत्वपूर्ण है!
if goo =~ /#{Regexp.quote(foo)}/
तुम सिर्फ "स्पष्ट" संस्करण करते हैं:
if goo =~ /#{foo}/
फिर अपने मैच पाठ में अवधि regexp वाइल्डकार्ड के रूप में इलाज कर रहे हैं, और "0.0.0.0"
"0a0b0c0"
से मेल खाएगी।
यह भी ध्यान रखें कि यदि आप वास्तव में सिर्फ सबस्ट्रिंग मिलान के लिए जाँच करना चाहते हैं, तो आप बस कर सकते हैं
if goo.include?(foo)
जो एक अतिरिक्त के हवाले से या विशेष वर्ण के बारे में चिंता की आवश्यकता नहीं है।
मैं मुझे पता चला कि मैं आसानी से Regexp.quote या Regexp.escape का उपयोग किए बिना एक regex में सम्मिलित कर सकते, तो मैं बस अपना इनपुट स्ट्रिंग पर एकल उद्धरण का इस्तेमाल किया:
स्रोत
2008-09-29 20:51:47
क्या आप यह देखने की कोशिश कर रहे हैं कि foo goo का एक सबस्ट्रिंग है या नहीं? मुझे नहीं लगता कि यह स्पष्ट है कि आप क्या पूछ रहे हैं। – Neall
यदि हां, तो goo.include? (Foo) पर्याप्त है! –
नहीं, मैं यह देखने की कोशिश नहीं कर रहा था कि foo goo का एक सबस्ट्रिंग है या नहीं; मुझे कुछ कैप्चरिंग करने की भी आवश्यकता है, इसलिए इसमें काम नहीं किया गया। –