簡體   English   中英

C#正則表達式將camelCase轉換為句子大小寫

[英]C# regex to convert camelCase to Sentence case

在我的示例中, var key = new CultureInfo("en-GB").TextInfo.(item.Key)生成'Camelcase'我可以添加的正則表達式會在第二個'c'之前產生一個空格?

例子:

'camelCase'>'駱駝盒'

'itIsTimeToStopNow'>'現在該停止了'

您如何做到這一點的方法之一。

string input = "itIsTimeToStopNow";
string output = Regex.Replace(input, @"\p{Lu}", m => " " + m.Value.ToLowerInvariant());
output = char.ToUpperInvariant(output[0]) + output.Substring(1);

一種方法是用空格大寫字母替換大寫字母,然后將第一個字符大寫:

var input = "itIsTimeToStopNow";

// add spaces, lower case and turn into a char array so we 
// can manipulate individual characters
var spaced = Regex.Replace(input, @"[A-Z]", " $0").ToLower.ToCharArray();

// spaced = { 'i', 't', ' ', 'i', 's', ' ', ... }

// replace first character with its uppercase equivalent
spaced[0] = spaced[0].ToString().ToUpper()[0];

// spaced = { 'I', 't', ' ', 'i', 's', ' ', ... }

// combine the char[] back into a string
var result = String.Concat(spaced);

// result = "It is time to stop now"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM