我有一个巨大的 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()"
}
]
}
}
}
其他资源
