2010-05-16 10 views
6

मेरे पास एक स्ट्रिंग है "हैलो [दुनिया] यह {है} ए (टेस्ट)" मैं ब्रेसिज़ में सभी टेक्स्ट को हटाना चाहता हूं, उदा। लौटना "हैलो यह एक"। लेकिन केवल अगर ब्रेसिज़ मैच।
किसी के पास एक अच्छा साफ समाधान है? कोष्ठक से पहलेसभी प्रकार के ब्रेसिज़ में पाठ को हटाकर

s = Regex.Replace(s, @"\s*?(?:\(.*?\)|\[.*?\]|\{.*?\})", String.Empty); 

\s*? मैचों किसी भी सफेद स्थान:

+0

ब्रेसिज़ मेल नहीं खाते तो वांछित व्यवहार क्या है? "यह {एक और {test} है" घोंसला के बारे में कैसे? "यह {else {test}} है" – Anton

उत्तर

4

आप रेगुलर एक्सप्रेशन का उपयोग कर सकते हैं।
(?:) इसके अंदर स्थितियों को समूहित करने के लिए एक गैर-मिलान करने वाला कंस्ट्रैसिस है।
\(.*?\) उनके बीच शून्य या अधिक वर्णों के साथ गणित कोष्ठक बना रहा है।

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