0

小文字がいっぱいの文字列 a があります。次の式を使用して小文字を大文字に置き換えようとしましたが、思い通りに動作しません。文字列 a で小文字を大文字に変換するにはどうすればよいですか?

using System.Text.RegularExpressions;

string a = "pieter was a small boy";
a = Regex.Replace(a, @"\B[A-Z]", m => " " + m.ToString().ToUpper());
4

5 に答える 5

11

ここには 2 つの問題があります。

  1. \bの代わりにパターンを使用する必要があり\Bます。詳細については、この質問を参照してください。
  2. 文字列は小文字で、パターンは大文字 ( ) のみに一致するため、コードを機能させる[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
于 2012-11-16T12:19:57.210 に答える
1

文字列内のすべての文字を大文字に変換しようとしている場合は、単純に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);
于 2012-11-16T11:22:52.890 に答える
0

好きなように正規表現を使用して、

a = Regex.Replace(a, @"\b[a-z]", m => m.ToString().ToUpper());

ソース

于 2012-11-16T11:23:57.017 に答える
-1

それはあなたのためにうまくいきます:

string a = "pieter was a small boy";
a = a.ToUpper();
于 2012-11-16T11:25:11.517 に答える
-1
Regex.Replace(inputStr, @"[^a-zA-Z0-9_\\]", "").ToUpperInvariant();
于 2012-11-16T11:24:30.027 に答える