2009-10-14 5 views
5

में कोणीय ब्रैकेट के भीतर उन सबस्ट्रिंग्स को कैसे प्राप्त करें, मुझे लगता है कि यह वास्तव में मूर्खतापूर्ण प्रश्न होगा, लेकिन मैं वाक्य में कोणीय बार्केट के भीतर एक्स्ट्राटिक srtings के साथ सफल नहीं हूं।स्ट्रिंग

var str = "MR. {Name} of {Department} department stood first in {Subjectname}" 

मैं सबस्ट्रिंग प्राप्त करने के लिए (सरणी के रूप में) की जरूरत है उन कोणीय brakets के भीतर हैं

strArray की तरह ऊपर दिए गए स्ट्रिंग से {नाम, विभाग, subjectName} शामिल करना चाहिए

उत्तर

6
List<string> fields = new List<string>(); 
    foreach(Match match in Regex.Matches(str, @"\{([^\}]*)\}")) { 
     fields.Add(match.Groups[1].Value); 
    } 

या स्वरूपण (रिक्त स्थान भरना) के लिए - this example देखें।

+0

हाँ, यह बहुत कम प्रयास – CRice

0

पहले खुले टैग की अनुक्रमणिका प्राप्त करने के लिए पहले खुले टैग और स्ट्रिंग.इंडेक्सऑफ ("}") की अनुक्रमणिका प्राप्त करने के लिए स्ट्रिंग.इंडेक्सऑफ ("{") का उपयोग करें। फिर इसे बाहर निकालने के लिए अन्य स्ट्रिंग फ़ंक्शंस का उपयोग करें (सबस्ट्रिंग, हटाएं आदि) ... जबकि अभी भी टैग

8

आपके प्रश्न में var का उपयोग नोट करते हुए, मुझे लगता है कि आप .NET 3.5 का उपयोग कर रहे हैं।
नीचे दी गई कोड के की एक पंक्ति चाल चलनी चाहिए।

string[] result = Regex.Matches(str, @"\{([^\}]*)\}").Cast<Match>().Select(o => o.Value).ToArray(); 
+0

बहुत दिलचस्प है। –

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