2008-11-14 12 views
6

मैं "काउंटरऑफविड्जेट्स" जैसे पास्कल-चरण वाली स्ट्रिंग लेना चाहता हूं और इसे सी # में "विजेट्स की गिनती" जैसे कुछ उपयोगकर्ता के अनुकूल में बदलना चाहता हूं। एकाधिक आसन्न अपरकेस वर्णों को बरकरार रखा जाना चाहिए। ऐसा करने का सबसे प्रभावी तरीका क्या है?शब्दों के लॉजिकल सेट में पास्कल-केस स्ट्रिंग को विभाजित करें

नोट: की डुप्लीकेट .NET - How can you split a "caps" delimited string into an array?

+0

यह कोई डुप्लिकेट सवाल क्योंकि जवाब "एक से अधिक के लिए पूरा नहीं करता से जुड़ा हुआ नहीं है आसन्न अपरकेस चरित्र को बरकरार रखा जाना चाहिए " – PandaWood

उत्तर

13

के बारे में पता नहीं है कुशल लेकिन कम से कम यह संक्षिप्त है:

Regex r = new Regex("([A-Z]+[a-z]+)"); 
string result = r.Replace("CountOfWidgets", m => (m.Value.Length > 3 ? m.Value : m.Value.ToLower()) + " "); 
+0

यह" स्वरूप श्रेणी "->" स्वरूप श्रेणी "के अंत में एक स्थान छोड़ देता है - इसलिए एक ट्रिम उपयोगी होगा और 3 की लंबाई की जांच करना एक अविश्वसनीय तरीका है" एकाधिक आसन्न अपरकेस होना चाहिए शेष अक्षुण्ण"। यह सिर्फ उम्मीद करता है कि 3 वर्णों से कम कुछ भी छोड़ा जाना चाहिए। तो "PubID" "प्रकाशन आईडी" पर जाता है जो सही नहीं है – PandaWood

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