String 如何强制文本为除选择性字符串外的大写字母c#

String 如何强制文本为除选择性字符串外的大写字母c#,string,toupper,String,Toupper,C#: 我试图让所有的文本都是大写的,除了-- 因为这些是我的编码,除非文本是小写,否则编码不会起作用。您可以用空格分割字符串,将所有不以&开头的项目都改为大写,只保留其余的内容,然后重新合并成一个字符串: & < > 另一种方法是使用正则表达式来匹配和,1+字字符,然后是,并匹配和捕获其他1+字字符块,仅将组1中的内容转换为大写: string mystring = "Hello World. & my name is &a

C#:

我试图让所有的文本都是大写的,除了--


因为这些是我的编码,除非文本是小写,否则编码不会起作用。

您可以用空格分割字符串,将所有不以
&
开头的项目都改为大写,只保留其余的内容,然后重新合并成一个字符串:

&  <  > 

另一种方法是使用正则表达式来匹配
,1+字字符,然后是
,并匹配和捕获其他1+字字符块,仅将组1中的内容转换为大写:

string mystring = "Hello World. & my name is < bob >. Thank You.";
string result = string.Join(" ", mystring.Split(' ').Select(m => m.StartsWith("&") ? m : m.ToUpper()));

非常感谢。我正想问你是否有一种不用Linq的方法,因为我在另一个软件中使用的是c#的精简版本。第二种方法非常有效,第二种方法是使用匹配计算器。您还可以定义一个单独的方法并传递它,而不是lambda表达式。
string mystring = "Hello World. & my name is < bob >. Thank You.";
string result = string.Join(" ", mystring.Split(' ').Select(m => m.StartsWith("&") ? m : m.ToUpper()));
var result = System.Text.RegularExpressions.Regex.Replace(mystring, 
    @"&\w+;|(\w+)", m => 
           m.Groups[1].Success ? m.Groups[1].Value.ToUpper() :
           m.Value
);