2010-06-17 19 views
5

मैं एक स्ट्रिंग में सभी अक्षरों को तोड़ना चाहता हूं, जो संख्यात्मक नहीं हैं। पसंदीदा अभिव्यक्तियों या कुछ के साथ पसंदीदा रूप से एक समाधान। और सी # में। यह कैसे करें?स्ट्रिंग से अक्षरों को कैसे हटाया जाए?

उत्तर

5

का उपयोग Regex:

str = Regex.Replace(str, @"\D+", ""); 

\D\d के पूरक है - सब कुछ है कि एक अंकों नहीं है मेल खाता है। + उनमें से एक या अधिक से मेल खाएगा (यह आमतौर पर एक से एक से थोड़ा बेहतर काम करता है)।

(नेट 4.0 पर) LINQ का उपयोग:

str = String.Concat(str.Where(Char.IsDigit)); 
-1
string result = System.Text.RegularExpressions.Regex.Replace("text to look for stuff", "pattern", "what to replace it with") 
+0

उम्म ठीक है? यह कैसे उपयोगी है? रेगेक्स कैसे काम करता है? आप इस 'पैटर्न' चीज का रहस्यमय तरीके से उपयोग कैसे करते हैं? और यह सवाल का जवाब कैसे देता है? – Jonas

+0

मेरी धारणा बस इतना थी कि उसे पता नहीं था कि इसे करने के लिए सटीक कोड चाहते हैं, बजाय सी # में रेगेक्स को कैसे बदला जाए। अन्य उत्तरों को पढ़ने के बाद मुझे एहसास हुआ कि मेरा जवाब चाहता था लेकिन यह इंगित करने के लिए धन्यवाद कि मैं गलत हूं। – Buildstarted

0
string str = "ab123123abc" 
str = Regex.Replace(str, @"[\w]", ""); 

से http://msdn.microsoft.com/en-us/library/844skk0h.aspx

+0

'[\ w]' अनावश्यक है, आपको चरित्र वर्ग की आवश्यकता नहीं है। '\ w' बिल्कुल वही है। हालांकि, '\ w' में अक्षर और अंक (और अंडरस्कोर) शामिल हैं, इसलिए आप विशेष वर्णों और रिक्त स्थानों के साथ समाप्त होते हैं। – Kobi

0

संदर्भित मैं नहीं बल्कि नहीं ^^\d की तरह या ^[0-9]

string resultString = null; 
try { 
    resultString = Regex.Replace(subjectString, @"[^\d]+", ""); 
} catch (ArgumentException ex) { 
    // Syntax error in the regular expression 
} 
का उपयोग करना चाहते
+1

ठीक है, यह मूल रूप से वही है, लेकिन शायद बेहतर ज्ञात है। 'Try/catch' ब्लॉक की आवश्यकता नहीं है, केवल एक ही संभावित अपवाद है यदि' topicString' 'null' है, जिसे आप बेहतर जांचते हैं। आपको इस पैटर्न के लिए 'ArgumentException' नहीं मिलेगा - यह सही है':) हालांकि, यह "' [^ \ d] 'या' [^ 0-9] '" होना चाहिए – Kobi

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