2011-10-28 21 views
10

में प्रश्न चिह्न के बारे में मैंने देखा कि एक नियमित अभिव्यक्ति का कहना है (?i)। तो इसका मतलब क्या है जब हम किसी चरित्र के सामने एक प्रश्न चिह्न डालते हैं?नियमित अभिव्यक्ति

उत्तर

11

सामान्यतः इसका कोई मतलब नहीं है और यहां तक ​​कि एक त्रुटि भी हो सकती है (यदि प्रश्न चिह्न मान्य वर्ण का पालन नहीं करता है)। लेकिन कुछ पात्र हैं जहां इसका प्रभाव पड़ता है, अर्थात् यदि इस चरित्र का उपयोग modifier के रूप में भी किया जाता है।

regular-expressions.info इस विशेष सिंटैक्स के बारे में कहते हैं:

आधुनिक regex जायके आप नियमित अभिव्यक्ति का ही हिस्सा करने के लिए संशोधक लागू करने के लिए अनुमति देते हैं। यदि आप रेगेक्स के बीच में संशोधक (?ism) डालें, तो संशोधक केवल संशोधक के दाईं ओर रेगेक्स के हिस्से पर लागू होता है। आप एक ऋण चिह्न के साथ उन्हें पहले से मोड बंद कर सकते हैं। ऋण चिह्न के बाद सभी मोड बंद कर दिए जाएंगे। जैसे (?i-sm) केस असंवेदनशीलता को चालू करता है, और सिंगल-लाइन मोड और मल्टी-लाइन मोड दोनों को बंद कर देता है।

सभी regex जायके इस का समर्थन नहीं करते। जावास्क्रिप्ट और पायथन पूरे मोड अभिव्यक्ति के लिए सभी मोड संशोधक लागू करते हैं। वे (?-ismx) वाक्यविन्यास का समर्थन नहीं करते हैं, क्योंकि एक विकल्प बंद करना व्यर्थ है जब मोड संशोधक पूरे नियमित अभिव्यक्तियों पर लागू होते हैं। सभी विकल्प डिफ़ॉल्ट रूप से बंद हैं।

आप जल्दी से परीक्षण कैसे regex स्वाद आप हैंडल मोड संशोधक का उपयोग कर रहे हो सकते हैं। रेगेक्स (?i)te(?-i)sttest और TEst से मेल खाना चाहिए, लेकिन teST या TEST से मेल नहीं होना चाहिए।

?i का अर्थ है कि इन वर्णों का पालन करने वाली सभी चीज़ों को केस-असंवेदनशील मिलान किया जाना चाहिए।

यह भी ध्यान रखें कि, जैसा कि पाठ कहता है, सभी रेगेक्स स्वाद इस वाक्यविन्यास का समर्थन नहीं करते हैं।

+0

बढ़िया! समझ गया। बीटीडब्ल्यू, यह एक महान वेबसाइट है –

संबंधित मुद्दे