Skip to main content
 首页 » 编程设计

c#之在 .net C# 中替换 char 并转换为大写的正则表达式

2024年02月04日29lidabo

我有一个巨大的 json 字符串。我想替换所有“_abc”引用 属性名称为“Abc”。如何在 C# 中使用 Regex 实现?

使用普通的 .net 替换,我可以执行以下操作以删除“_”实例,但不确定如何将第一个字母转换为大写。

text = jsonString.Replace("\"_", "\""); 

谢谢, 周杰伦

请您参考如下方法:

因为你想要速度,这可能会让你感兴趣也可能不会

unsafe public static string Convert(string input) 
{ 
   fixed (char* pInput = input) 
   { 
      char* p1, p2, len = pInput + input.Length; 
      for (p1 = p2 = pInput + 1; p2 < len; p1++, p2++) 
         *p1 = *(p2 - 1) == '"' && *p2 == '_' ? char.ToUpper(*++p2) : *p2; 
      return input.Substring(0, (int)(p1 - pInput)); 
   } 
} 

它只是替换了 "_<char>至 "<Upper case char>

在我的电脑上它可以做 445 Mb 1.8 秒

示例输入

{ 
   "menu":{ 
      "id":"_file", 
      "value":"_file", 
      "popup":{ 
         "menuitem":[ 
            { 
               "value":"_new", 
               "onclick":"_createNewDoc()" 
            }, 
            { 
               "value":"_open", 
               "onclick":"_openDoc()" 
            }, 
            { 
               "value":"_close", 
               "onclick":"_closeDoc()" 
            } 
         ] 
      } 
   } 
} 

输出

{ 
   "menu":{ 
      "id":"File", 
      "value":"File", 
      "popup":{ 
         "menuitem":[ 
            { 
               "value":"New", 
               "onclick":"CreateNewDoc()" 
            }, 
            { 
               "value":"Open", 
               "onclick":"OpenDoc()" 
            }, 
            { 
               "value":"Close", 
               "onclick":"CloseDoc()" 
            } 
         ] 
      } 
   } 
} 

其他资源