C# 如何使用正则表达式将小写替换为大写?

C# 如何使用正则表达式将小写替换为大写?,c#,regex,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()); 如果您试图将字符串中的所有字符转换为大写,那么只需执行以下操作 如果要执行

我有一个小写的字符串a。我尝试使用下面的表达式将小写替换为大写,但它不能按我所希望的那样工作。如何将字符串a中的小写转换为大写

using System.Text.RegularExpressions;

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

如果您试图将字符串中的所有字符转换为大写,那么只需执行以下操作

如果要执行不区分大小写的替换,请使用:


根据需要使用正则表达式

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

它对您很好:

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

这里有两个问题:

  • 您的模式需要使用
    \b
    而不是
    \b
    。有关更多信息,请参见此
  • 因为您的字符串是小写的,并且您的模式只匹配大写(
    [A-Z]
    ),所以您需要使用
    RegexOptions.IgnoreCase
    使代码正常工作

  • 上述代码的输出为:

    Pieter Was A Small Boy
    

    a.ToUpper()
    还不够吗???你想做什么?将整个字符串转换为大写?我认为OP已经完成了这项工作,并且无法反转
    ToUpper()
    的解决方案。a.ToUpper()可以解决这个问题。我猜所有因为“a.ToUpper()还不够?”而投了否决票的人都需要在这里发布的用例之外打开他们的思路。我是从Google来写这篇文章的,因为我正在编写一个源代码转换实用程序,我需要一个正则表达式来查找声明,然后是属性访问器,然后是后面的第一个字符和大写字母。不,ToUpper不够好。正则表达式也增加了空间。这不是OP想要的删除了空间,现在可以了吗@cthul您也需要将
    \B
    更改为
    \B
    。这并不能回答问题。他特别要求提供正则表达式的用例。我认为这会自然而然地意味着他想兜售一个俘虏小组,或者至少是一些与regex有关的东西。“两个问题”嘿嘿
    Regex.Replace(inputStr, @"[^a-zA-Z0-9_\\]", "").ToUpperInvariant();
    
    string a = "pieter was a small boy";
    a = a.ToUpper();
    
    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