我有一个巨大的json字符串。我要替换所有“ _abc”参考 属性名称为“ Abc”。如何在C#中使用Regex做到这一点?
使用普通的.net替换,我可以执行以下操作来删除“ _”实例,但不确定如何将第一个字母转换为大写字母。
text = jsonString.Replace("\"_", "\"");
谢谢, 杰伊
答案 0 :(得分:4)
因为您想要速度,所以您可能感兴趣或不感兴趣
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()"
}
]
}
}
}
其他资源