How do I print a Ruby regex variable? -
मैं एक नियमित अभिव्यक्ति का सिर्फ एक हिस्सा कैसे मुद्रित / प्रदर्शित करूं जो कि स्लैश के बीच है?
आईआरबी & gt; Re = / \ Ahello \ z / irb & gt; इसका परिणाम है: पुनः है / (- - मिश्रण: \ एहेलो \ z) / "{/ code}
जबकि मैं चाहता हूं:
है / \ ahello \ z / ... लेकिन नहीं यह पागलपन कर रहा है:
डालता है "पुनः है / # {re.to_s.gsub (/.*:(.*)\)/, '' 1 ')} /"
यदि आप सीमांकक के बीच मूल प्रतिमान देखना चाहते हैं, तो source : <पूर्व> IP_PATTERN = /(?:\d {1,3}} .){3}.d{1,3}/ IP_PATTERN # = & gt; /( {:3} "/(?:\\d {1,3}}।} {3} \\d {1,3} /" IP_PATTERN.to_s # = & gt; "(? -मिक्स: (?: \\ d {1,3} \\।) {3} \\ d {1,3})" यह वही है जो स्रोत दिखाता है: IP_PATTERN.source # = & gt; "(?: \\ d {1,3} \\।) {3} \\ d {1,3}" से:
रिटर्न देता है पैटर्न की मूल स्ट्रिंग /ab+c/ix.source # = & gt; "एब + सी" ध्यान दें कि एस्केप अनुक्रम को यथासंभव रखा जाता है। /\x20\+/.source # = & gt; "\\ x20 \\ +" नोट:
छोटे पैटर्न से एक जटिल पैटर्न बनाने के लिए आम है, और सरल लोगों को सम्मिलित करने के लिए प्रक्षेप का उपयोग करने के लिए मोहक है, लेकिन ऐसा नहीं है जितना अधिक लोग सोचते हैं उतना काम नहीं करेगा इस पर गौर करें:
foo = / foo / bar = / bar / imx foo_bar = / # {foo} _ # {bar} / foo_bar # = & gt; / (? - मिश्रण: एफू) _ (? मिश्रण: बार) / ध्यान दें कि foo_bar प्रत्येक उप-पैटर्न के लिए पैटर्न फ़्लैग है यदि वे अपने अस्तित्व के बारे में जानकारी नहीं रखते हैं, तो उन चीजों से मिलान करने की कोशिश करते समय वे वास्तव में आपको गड़बड़ कर सकते हैं (? -...) के अंदर ब्लॉक वाला पैटर्न i , m या x बाहरी पैटर्न के संबंध में डिबगिंग जो आपको पागल बना सकता है, सामान्य रूप से एक जटिल पैटर्न को डिबग करने की कोशिश करने से भी बदतर होगा मुझे इसके बारे में कैसे पता है? मैं उस विशेष युद्ध का एक अनुभवी हूं। यही कारण है कि स्रोत महत्वपूर्ण है यह झंडे के बिना सटीक पैटर्न को इंजेक्ट करता है: foo_bar = / # {foo.source} _ # {bar.source} / foo_bar # = & gt; / Foo_bar /
Comments
Post a Comment