1

我正在尝试使用 c# 将单词大写

Regex.Replace(source,"\b.",m=>m.Value.ToUpper())

它不起作用。

我想用 c# 做到这一点:

"this is an example string".replace(/\b./g,function(a){ return a.toLocaleUpperCase()});

输出字符串:"This Is An Example String"

4

4 回答 4

3

如果你的意思是每个单词的第一个字母,试试这个:ToTitleCase

http://msdn.microsoft.com/en-us/library/system.globalization.textinfo.totitlecase.aspx

string s = "this is an example string";
TextInfo ti = CultureInfo.CurrentCulture.TextInfo;

string uppercase = ti.ToTitleCase(s);
于 2013-05-13T19:50:21.550 回答
2

问题是您需要转义搜索词,因为它涉及“\”字符。使用@"\b.""\\b."作为您的搜索词。

于 2013-05-13T19:51:27.060 回答
1

你为什么不简单地试试这个

string upperString = mystring.ToUpper();

如果你想每个单词的第一个字母大写,那么你可以试试这个。

CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture;
TextInfo textInfo = cultureInfo.TextInfo;
string capitalString=textInfo.ToTitleCase(myString));
于 2013-05-13T19:47:05.457 回答
0

您还可以通过聚合将每个单词大写。

"this is an example string"
.Split(' ')
.Aggregate("", (acc, word) => acc + " " + char.ToUpper(word[0]) + word.Substring(1))
于 2013-05-13T19:53:03.450 回答