2011-07-12 9 views
7

हमारे कोड में निम्न प्रपत्र की नियमित अभिव्यक्ति है:.NET नियमित अभिव्यक्ति में (? I) क्या होता है?

string regex = @"(?i)foo=(BAR?-[A-Z]+(33|34)?)"; 

रेगेक्स मैच/डू की शुरुआत में "(?i)" क्या करता है? मैंने .NET regex दस्तावेज़ों को देखा है और यह पता लगाना प्रतीत नहीं होता कि (?i) का क्या अर्थ होगा। धन्यवाद!

उत्तर

12

(?i) को सक्रिय करता है केस-संवेदी मिलान के साथ Regex.Matches कॉल करने के लिए बराबर है।

संदर्भ: MSDN, Regular Expression Options (मेरे द्वारा प्रकाश डाला):

आप तीन में से एक तरह से नियमित अभिव्यक्ति के लिए विकल्प निर्दिष्ट कर सकते हैं:

  • विकल्प में एक System.Text.RegularExpressions.Regex की पैरामीटर कक्षा कन्स्ट्रक्टर या स्थिर (विजुअल बेसिक में साझा) पैटर्न-मिलान विधि, जैसे Regex.Regex(String, RegexOptions) या Regex.Match(String, String, RegexOptions)। [...]

  • वाक्यविन्यास (? Imnsx-imnsx) के साथ नियमित अभिव्यक्ति पैटर्न में इनलाइन विकल्पों को लागू करके। विकल्प इस बिंदु से पैटर्न पर लागू होता है कि विकल्प को पैटर्न के अंत या उस बिंदु तक परिभाषित किया जाता है जिस पर विकल्प किसी अन्य इनलाइन विकल्प द्वारा अपरिभाषित किया जाता है। [...]

  • वाक्य रचना के साथ एक नियमित अभिव्यक्ति पैटर्न में एक विशेष समूह के निर्माण में इनलाइन विकल्प लगाकर (imnsx-imnsx: उपसूचक)। [...]

4

(?i) का अर्थ है: मामले विकल्प को अनदेखा करें। यह 3 परम RegexOptions.IgnoreCase

3

यह regex मामले की अनदेखी करने के निर्धारित करता है। भविष्य में आप इस तरह बातें पता लगाने की Expresso उपयोग कर सकते हैं: enter image description here

1

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

1

संलग्न समूह

के भीतर मामले को अनदेखा कर देता है
संबंधित मुद्दे