दिलचस्प पोस्ट
रूबी के attr_accessor, attr_reader और attr_writer का उपयोग क्यों करें? लाइनों के बीच एंड्रॉइड टेक्स्टदृश्य पैडिंग IOS7 में एक धुंधला प्रभाव बनाना एक वर्ग जब तुलनात्मक और / या तुलनात्मक होना चाहिए? PHP के साथ .json फ़ाइल कैसे उत्पन्न करें? सीएसवी फ़ाइल आयात। नेट में पुनरावृत्त वेक्टर, कुछ वस्तुओं को हटा दें जैसा मैं जाता हूं jquery .html () बनाम .append () एआरसी समर्थन प्रेषण कतार करता है? पीडीएफ़ को एक रिपोर्ट निर्यात करते वक्त फ़ॉन्ट बदलते हैं एआरबी टेम्पलेट्स में एचटीएमएल से बचने को अक्षम करें संशोधित क्लोजर तक पहुंच (2) मामलों में जहां ++ स्टेटमेंट में कहीं भी मूल्य का उपयोग नहीं किया जाता है, उसमें आई ++ के बजाय ++ का उपयोग क्यों करें? Exec () का उपयोग करते समय कमांड प्रॉम्प्ट विंडो छुपाएं मुझे ईएस 6 आयात के लिए कुरकुरा ब्रेसिज़ का उपयोग कब करना चाहिए?

.Net regex: शब्द चरित्र \ w क्या है?

आसान सवाल:
शब्द चरित्र \w में सी #, .net के लिए पैटर्न क्या है?

मेरा पहला सोचा था कि यह [A-Za-z0-9_] मेल खाता है और दस्तावेज़ीकरण मुझसे कहता है:

 वर्ण वर्ग विवरण पैटर्न मिलान
 \ w किसी भी \ w "I", "D", "A", "1", "3" से मेल खाता है
                    शब्द चरित्र  "आईडी A1.3" में

जो बहुत उपयोगी नहीं है
और \w भी मैच äöü लगता है, भी। और क्या? क्या कोई बेहतर (सटीक) परिभाषा उपलब्ध है?

Solutions Collecting From Web of ".Net regex: शब्द चरित्र \ w क्या है?"

प्रलेखन से :

वर्ड कैरेक्टर: \ w

\w किसी भी शब्द चरित्र से मेल खाता है एक शब्द का चरित्र निम्न तालिका में सूचीबद्ध किसी भी यूनिकोड श्रेणियों का सदस्य है।

  • Ll (पत्र, लोअरकेस)
  • Lu (पत्र, अपरकेस)
  • Lt (पत्र, शीर्षक केस)
  • Lo (पत्र, अन्य)
  • Lm (पत्र, संशोधक)
  • Nd (संख्या, दशमलव अंक)
  • Pc (विराम चिह्न, कनेक्टर)
    • इस श्रेणी में दस वर्ण शामिल हैं, जिनमें से सबसे ज्यादा इस्तेमाल किया गया है, जिसमें लोलाइन वर्ण (_), यू + 005 एफ है

यदि ECMAScript- अनुरूप व्यवहार निर्दिष्ट है, तो \w [a-zA-Z_0-9]

यह भी देखें

  • यूनिकोड वर्ण डाटाबेस
  • 'विरामचिन्ह, कनेक्टर' श्रेणी में यूनिकोड वर्ण

असल में यह उन सभी चीजों से मेल खाता है जिन्हें विभिन्न लिपियों में पत्र की सहज परिभाषा माना जा सकता है – प्लस अंडरस्कोर और कुछ अन्य ओडबॉल

आप निम्न छोटे पावरशेल स्निपेट के साथ एक पूरी सूची (कम से कम बीएमपी के लिए) पा सकते हैं:

 0..65535 | ?{([char]$_) -match '\w'} | %{ "$_`: " + [char]$_ } 

इसलिए कुछ एक्सचेंजों में '\ w' का प्रयोग करते हुए .net के बराबर है:

 public static class Extensions { /// <summary> /// The word categories. /// </summary> [NotNull] private static readonly HashSet<UnicodeCategory> _wordCategories = new HashCollection<UnicodeCategory>( new[] { UnicodeCategory.DecimalDigitNumber, UnicodeCategory.UppercaseLetter, UnicodeCategory.ConnectorPunctuation, UnicodeCategory.LowercaseLetter, UnicodeCategory.OtherLetter, UnicodeCategory.TitlecaseLetter, UnicodeCategory.ModifierLetter, UnicodeCategory.NonSpacingMark, }); /// <summary> /// Determines whether the specified character is a word character (equivalent to '\w'). /// </summary> /// <param name="c">The c.</param> public static bool IsWord(this char c) => _wordCategories.Contains(char.GetUnicodeCategory(c)); } 

मैंने इसे एक एक्सटेंशन विधि के रूप में लिखा है जिसे किसी भी चरित्र c पर उपयोग करना आसान है, बस c.IsWord() जो true होगा अगर चरित्र एक शब्द चरित्र है रेगेक्स की तुलना में यह काफी तेज होनी चाहिए।

दिलचस्प बात यह है कि यह एनएटी विनिर्देश से मेल नहीं खाता है, वास्तव में '\ w' मैच 938 'नॉन-स्पेसिंग मार्क' वर्ण, जिनका उल्लेख नहीं किया गया है।

कुल मिलाकर यह 65,535 अक्षरों में से 49,760 से मेल खाता है, इसलिए वेब पर दिखाए जाने वाले सरल रेगेक्स अपूर्ण होते हैं।