दिलचस्प पोस्ट
किसी jQuery चयनकर्ता स्ट्रिंग में एक विशेष वर्ण से बचने की आवश्यकता है सीमा लंबाई को सीमित करने का कोई भी तरीका? वसंत में संदर्भ लदाईदार की भूमिका / उद्देश्य? Enum वर्ग क्यों सादे enum से अधिक पसंद है? क्या Xcode 5 पर आईओएस 6 एसडीके स्थापित करना संभव है? मेरे DatePickerFragment से प्रारूपित दिनांक स्ट्रिंग कैसे स्थानांतरित करें? पायथन में और __eq__ को कैसे नियंत्रित किया जाता है? जीसीडी में समवर्ती बनाम सीरियल कतार जावा में स्ट्रिपिंग एचटीएमएल टैग पृष्ठभूमि में एक सीएसएस छवि बढ़ाएं और स्केल करें – केवल सीएसएस के साथ एकल उद्धृत तारों के भीतर एकल उद्धरण कैसे बचें? एक वेटेड रैंडम संख्या उत्पन्न करें उद्देश्य-सी में आयवर और गुणों के बीच अंतर क्या है Xcode के सभी अपवाद ब्रेकपॉइंट का उपयोग करते समय कुछ अपवादों को अनदेखा करें क्या मेरे आवेदन में "एन्क्रिप्शन शामिल है"?

नियमित अभिव्यक्ति के साथ हाइफ़न कैसे मिलान करें?

मौजूदा अक्षरों के साथ [a-zA-Z0-9!$* \t\r\n] हाइफ़न का मिलान करने के लिए पैटर्न कैसे पुनः लिखना है?

वेब के समाधान से एकत्रित समाधान "नियमित अभिव्यक्ति के साथ हाइफ़न कैसे मिलान करें?"

हाइफ़न से बचें

 [a-zA-Z0-9!$* \t\r\n\-] 

अद्यतन :
इस उत्तर को कभी भी ध्यान न दें – आप समूह के लिए हाइफ़न जोड़ सकते हैं लेकिन आपको इसे बचाना नहीं पड़ता है। इसके बजाय कोनराड रूडोल्फ के जवाब देखें जो जवाब देने की एक बेहतर काम करता है और बताता है कि क्यों।

हाइफ़न सामान्यतः सामान्य अभिव्यक्तियों में सामान्य वर्ण होता है। सिर्फ अगर यह एक चरित्र वर्ग में है और दो अन्य वर्णों के बीच यह एक विशेष अर्थ लेता है।

इस प्रकार:

  • [-] एक हाइफ़न से मेल खाता है
  • [abc-] मैचों a , b , c या हाइफ़न
  • [-abc] मैचों a , b , c या हाइफ़न
  • [ab-d] मैचों a , b , c या d ( केवल हाइफ़न एक चरित्र श्रेणी दर्शाती है)

हमेशा से बचने वाले हाइफ़ेन का उपयोग करने में यह कम भ्रमित है, ताकि यह स्थिति पर निर्भर न हो। यह एक है \- bracketed वर्ण वर्ग के अंदर।

लेकिन कुछ और बातों पर विचार करना है इनमें से कुछ वर्णित वर्णों को संभवतः अलग तरह से लिखा जाना चाहिए। कुछ परिस्थितियों में, वे निश्चित रूप से चाहिए

रेगेक्स स्वादों की यह तुलना कहती है कि C♯ कुछ सरल यूनिकोड गुणों का उपयोग कर सकता है। यदि आप यूनिकोड के साथ काम कर रहे हैं, तो आपको संभवतः सभी संभावित अक्षरों के लिए सामान्य श्रेणी \p{L} उपयोग करना चाहिए, और शायद दशमलव संख्याओं के लिए \p{Nd} इसके अलावा, यदि आप सभी डैश विराम चिह्न को समायोजित करना चाहते हैं, न कि सिर्फ हाइफ़न-मिनस, आपको \p{Pd} संपत्ति का उपयोग करना चाहिए। आप यह भी मान सकते हैं कि सफेद स्थान के अक्षर को \s रूप में लिखना है, यह मानते हुए कि यह आपके लिए बहुत सामान्य नहीं है।

एक साथ, जो उस सेट से किसी भी एक अक्षर से मेल करने के लिए [\p{L}\p{Nd}\p{Pd}!$*] अनुकूलन के लिए काम करता है

मुझे इसका इस्तेमाल किसी भी तरह से होगा, भले ही मैंने पूर्ण यूनिकोड सेट से निपटने की योजना नहीं की, क्योंकि इसमें शामिल होने की अच्छी आदत है, और क्योंकि ये चीजें अक्सर अपने मूल पैरामीटर से परे बढ़ती हैं। अब जब आप इसे अन्य कोड में उपयोग करने के लिए उठाते हैं, तो यह अभी भी सही तरीके से काम करेगा। यदि आप सभी अक्षरों को कड़ी मेहनत करते हैं, तो ऐसा नहीं होगा।

क्या यह आप के बाद कर रहे हैं?

 MatchCollection matches = Regex.Matches(mystring, "-"); 

किसी भी प्रकार के हाइफ़न से मेल करने के लिए उद्धरण चिह्नों के बिना "\ p {Pd}" का उपयोग करें '-' वर्ण केवल एक प्रकार का हाइफ़न है जो रेगेक्स में एक विशेष चरित्र होता है।

[-ए-0 0 0 9] +, [ए-जी 0-9-] +, [एज़-0-9] + और भी [एज़-0-9] + सभी समान हैं। दो श्रेणियों के बीच हाइफ़न को माना जाता है प्रतीक। और भी [a-z0- 9 – + ()] + इस रीजेक्स को हाइफ़न की अनुमति है।