1

C#:

string mystring = "Hello World. & my name is < bob >. Thank You."
Console.Writeline(mystring.ToUpper())

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

&  <  > 

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

4

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()));

在此处输入图像描述

另一种方法是使用正则表达式匹配&, 1+ word chars 然后 a ;, 并匹配并捕获其他 1+ word char 块,并且仅将 Group 1 中的内容转换为大写:

var result = System.Text.RegularExpressions.Regex.Replace(mystring, 
    @"&\w+;|(\w+)", m => 
           m.Groups[1].Success ? m.Groups[1].Value.ToUpper() :
           m.Value
);
于 2017-01-03T15:04:06.177 回答