如何使用正则表达式替换大写的小写?

时间:2012-11-16 11:21:03

标签: c# regex

我的字符串a充满了小写字母。我尝试使用以下表达式将小写替换为大写但是它不能正常工作。如何在字符串a?

中将小写字母转换为大写字母
using System.Text.RegularExpressions;

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

5 个答案:

答案 0 :(得分:8)

这里有两个问题:

  1. 您的模式需要使用\b而不是\B。有关详细信息,请参阅此question
  2. 由于您的字符串是小写的,并且您的模式只匹配大写([A-Z]),因此您需要使用RegexOptions.IgnoreCase来使代码正常工作。

  3. 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
    

答案 1 :(得分:0)

如果您尝试将字符串中的所有字符转换为大写字母,那么只需执行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);

答案 2 :(得分:0)

根据需要使用正则表达式,

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

Source

答案 3 :(得分:-1)

Regex.Replace(inputStr, @"[^a-zA-Z0-9_\\]", "").ToUpperInvariant();

答案 4 :(得分:-1)

它适用于你:

string a = "pieter was a small boy";
a = a.ToUpper();