C#:
string mystring = "Hello World. & my name is < bob >. Thank You."
Console.Writeline(mystring.ToUpper())
すべてのテキストを大文字にしようとしています--
& < >
これらは私のエンコーディングであり、テキストが小文字でない限りエンコーディングが機能しないためです。
文字列をスペースで分割し、 で始まらないすべての項目&
を大文字に変更し、残りをそのままにしてから、文字列に結合し直すことができます。
string mystring = "Hello World. & my name is < bob >. Thank You.";
string result = string.Join(" ", mystring.Split(' ').Select(m => m.StartsWith("&") ? m : m.ToUpper()));
もう 1 つの方法は、正規表現を使用して、1 つ&
以上の単語の文字、次に;
を照合し、他の 1 つ以上の単語の文字チャンクを照合してキャプチャし、グループ 1 の内容のみを大文字に変換することです。
var result = System.Text.RegularExpressions.Regex.Replace(mystring,
@"&\w+;|(\w+)", m =>
m.Groups[1].Success ? m.Groups[1].Value.ToUpper() :
m.Value
);