2011-05-03 10 views
16

साथ मैं वास्तव में Regex के साथ बुरा कर रहा हूँ, लेकिन मैं इन सभी, निकालना चाहते हैं,:।!? ' "$ # @/* &^- + एक तार से बाहरस्ट्रिंग से विराम चिह्न निकालें Regex

string x = "This is a test string, with lots of: punctuations; in it?!."; 

मुझे लगता है कि कैसे कर सकते हैं

+4

क्यों नहीं बस एक string.Replace चला सकता हूँ? प्रदर्शन निस्संदेह बेहतर होगा और कोड बूट करने के लिए और अधिक पठनीय होगा। – Tejs

+1

संभावित डुप्लिकेट [स्ट्रिंग से विराम चिह्न को पट्टी करने का सबसे अच्छा तरीका] (http://stackoverflow.com/questions/421616/best-way-to-strip-punctuation-from-a-string) –

+0

@Tejs: प्रदर्शन हो सकता है या स्ट्रिंग की लंबाई और प्रतिस्थापित करने की आवश्यकता वाले वर्णों की संख्या के आधार पर बेहतर नहीं हो सकता है। साथ ही, कोड आवश्यक रूप से कम पठनीय नहीं होगा। बहुत से लोगों को नियमित अभिव्यक्तियों का उपयोग करने के लिए एक विकृति है क्योंकि वे गुप्त दिखते हैं, लेकिन किसी भी अन्य कोड की तरह - उन पर टिप्पणी करने से उनकी मदद मिलेगी। –

उत्तर

46

पहले, कृपया नियमित अभिव्यक्ति के बारे में जानकारी के लिए read here यह सीखने लायक है

आप इस का उपयोग कर सकते हैं:?।।

Regex.Replace("This is a test string, with lots of: punctuations; in it?!.", @"[^\w\s]", ""); 

जिसका मतलब है:

[ #Character block start. 
^ #Not these characters (letters, numbers). 
\w #Word characters. 
\s #Space characters. 
] #Character block end. 

अंत इसे पढ़ता में "किसी भी चरित्र है कि एक शब्द चरित्र या कुछ भी नहीं के साथ एक अंतरिक्ष चरित्र नहीं है की जगह।"

+0

मुझे \ w \ s – Sjemmie

+0

पर अज्ञात भागने अनुक्रम मिलता है मेरा उत्तर अपडेट कर रहा है ... आपको केवल स्लेश से बचने की आवश्यकता है। –

+0

मुझे यह मिला, यह ठीक काम करता है – Sjemmie

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