Dot-Net

將 PascalCase 字元串拆分為單獨的單詞

  • October 2, 2020

我正在尋找一種方法將 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]

引用自:https://stackoverflow.com/questions/3216085