2009-05-20 14 views
17

मैं सी # में एक नियमित अभिव्यक्ति पैटर्न बनाने की कोशिश कर रहा हूं।सी # अक्षरों, संख्याओं और अंडरस्कोर से मेल खाने के लिए नियमित अभिव्यक्ति

  • पत्र
  • संख्या
  • रेखांकित

अब तक मैं थोड़ा भाग्य (i RegEx में अच्छा नहीं कर रहा हूँ) हो रहा है: पैटर्न के लिए ही अनुमति दे सकते हैं। यहाँ है कि मैं क्या अब तक की कोशिश की है है:

// Create the regular expression 
string pattern = @"\w+_"; 
Regex regex = new Regex(pattern); 

// Compare a string against the regular expression 
return regex.IsMatch(stringToTest); 

उत्तर

27

संपादित करें:

@"^[a-zA-Z0-9\_]+$" 

या

@"^\w+$" 
+1

भी दूसरे मैच अपरकेस अंग्रेज़ी अक्षरों @JoeWhite http://regexstorm.net/tester?p=%5e%5cw%2b%24&i=ABC&o=m – ihebiheb

2

http://www.weitz.de/regex-coach/ की तरह कुछ है जो आप सहभागी regex विकसित की सुविधा देता है के साथ प्रयोग करने की कोशिश करें।

यह पर्ल के लिए डिज़ाइन किया गया है, लेकिन मुझे समझने में मदद मिली कि रेगेक्स अभ्यास में कैसे काम करता है।

18

@ "^ \ w + $"

\ किसी भी "शब्द चरित्र", के रूप में अंक, पत्र, और अंडरस्कोर परिभाषित से मेल खाता है डब्ल्यू। यह यूनिकोड-जागरूक है, इसलिए यह उमोट्स के साथ अक्षरों से मेल खाता है और इस तरह (अपने स्वयं के चरित्र वर्ग को रोल करने की कोशिश करने से बेहतर [ए-ज़ा-जे 0-9_] जो केवल अंग्रेजी अक्षरों से मेल खाता है)।

^शुरुआत में^"स्ट्रिंग की शुरुआत से मेल खाता है", और अंत में $ का मतलब है "स्ट्रिंग के अंत से मेल करें"। उन लोगों के बिना, उदा। अगर आपके पास अभी @ @ \ w + "था, तो" @@ Foo @@ "मेल खाएगा, क्योंकि में एक या अधिक शब्द वर्ण हैं।^और $ के साथ, फिर "@@ Foo @@" मेल नहीं खाएगा (जो आप जो खोज रहे हैं उसके जैसा लगता है), क्योंकि आपके पास स्टार्ट-ऑफ-स्ट्रिंग नहीं है जिसके बाद एक या अधिक शब्द- अंत-स्ट्रिंग के बाद वर्ण।

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

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