Dot-Net
將 PascalCase 字元串拆分為單獨的單詞
我正在尋找一種方法將 PascalCase 字元串(例如“MyString”)拆分為單獨的單詞 - “My”、“String”。另一位使用者提出了問題
bash,但我想知道如何使用通用正則表達式或至少在 .NET 中進行操作。如果你能找到一種方法來拆分(並且可以選擇大寫)camelCase 字元串:例如“myString”變成“my”和“String”,可以選擇將其中一個或兩個字元串大寫/小寫。
看到這個問題:有沒有一種優雅的方法來解析一個單詞並在大寫字母之前添加空格? 它接受的答案涵蓋了您想要的內容,包括數字和連續的幾個大寫字母。雖然此範例的單詞以大寫開頭,但當第一個單詞為小寫時它同樣有效。
string[] tests = { "AutomaticTrackingSystem", "XMLEditor", "AnXMLAndXSLT2.0Tool", }; Regex r = new Regex( @"(?<=[A-Z])(?=[A-Z][a-z])|(?<=[^A-Z])(?=[A-Z])|(?<=[A-Za-z])(?=[^A-Za-z])" ); foreach (string s in tests) r.Replace(s, " ");以上將輸出:
[Automatic][Tracking][System] [XML][Editor] [An][XML][And][XSLT][2.0][Tool]