2009-11-01 14 views
38

मुझे स्ट्रिंग से सभी नंबरों और संकेतों को हटाने के लिए Regex.Replace का उपयोग करने की आवश्यकता है।Regex.Replace का उपयोग कर स्ट्रिंग से संख्याओं को कैसे निकालें?

उदाहरण इनपुट: 123- abcd33 उदाहरण आउटपुट: abcd

अग्रिम धन्यवाद।

var output = Regex.Replace(input, @"[\d-]", string.Empty); 

\d पहचानकर्ता बस किसी भी अंकों चरित्र से मेल खाता है:

+2

आप भी "-" हटा देना चाहते हैं? वे संख्या नहीं हैं ... – jle

उत्तर

3
var result = Regex.Replace("123- abcd33", @"[0-9\-]", string.Empty); 
10

तुम एक नियमित अभिव्यक्ति के बजाय समाधान की तरह एक LINQ के साथ यह कर सकते हैं:

string input = "123- abcd33"; 
string chars = new String(input.Where(c => c != '-' && (c < '0' || c > '9')).ToArray()); 

एक त्वरित प्रदर्शन परीक्षण से पता चलता है कि इस बारे में पांच बार रेगुलर एक्सप्रेशन के उपयोग की तुलना में तेजी है।

+0

के लिए धन्यवाद, मैंने सोचा होगा कि यह चारों ओर एक और तरीका होगा .... दिलचस्प। – SirDemon

+0

@SirDemon: हाँ, LINQ आमतौर पर सबसे तेज़ विकल्प नहीं है, लेकिन नियमित अभिव्यक्तियों में एक बड़ा प्रारंभिक ओवरहेड होता है। RegEx ऑब्जेक्ट को स्थापित करने वाले छोटे तारों पर संचालन के लिए वास्तविक कार्य से अधिक समय लगता है। – Guffa

+0

@ गुफा क्या आप जानते हैं कि यह तराजू कैसे? आइए 50k रिकॉर्ड पर मुझे रेगेक्स के लिए जाना चाहिए? –

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