小文字がいっぱいの文字列 a があります。次の式を使用して小文字を大文字に置き換えようとしましたが、思い通りに動作しません。文字列 a で小文字を大文字に変換するにはどうすればよいですか?
using System.Text.RegularExpressions;
string a = "pieter was a small boy";
a = Regex.Replace(a, @"\B[A-Z]", m => " " + m.ToString().ToUpper());
ここには 2 つの問題があります。
\b
の代わりにパターンを使用する必要があり\B
ます。詳細については、この質問を参照してください。[A-Z]
には を使用する必要があります。RegexOptions.IgnoreCase
string a = "pieter was a small boy";
var regex = new Regex(@"\b[A-Z]", RegexOptions.IgnoreCase);
a = regex.Replace(a, m=>m.ToString().ToUpper());
上記のコードの出力は次のとおりです。
Pieter Was A Small Boy
文字列内のすべての文字を大文字に変換しようとしている場合は、単純にstring.ToUpper()を実行します
string upperCasea = a.ToUpper();
大文字と小文字を区別しない置換を行いたい場合は、次を使用しますRegex.Replace Method (String, String, MatchEvaluator, RegexOptions)
。
a = Regex.Replace(a,
@"\b[A-Z]",
m => " " + m.ToString().ToUpper(),
RegexOptions.IgnoreCase);
それはあなたのためにうまくいきます:
string a = "pieter was a small boy";
a = a.ToUpper();
Regex.Replace(inputStr, @"[^a-zA-Z0-9_\\]", "").ToUpperInvariant();