C# 替换文件中的字符串

C# 替换文件中的字符串,c#,regex,replace,C#,Regex,Replace,我必须按以下方式更换 如果字符串是“string\u countryCode”,我必须将其替换为“string\u scontrycode” 正如你所看到的,在哪里有,我用大写字母替换它,后面是下一个字符 更多示例: string\u postalCode将替换为string\u sPostalCode string\u firstName将替换为string\u sffirstname 请帮忙。 最好用C#语法回答我不知道为什么,但可能类似于: static readonly Regex hu

我必须按以下方式更换

如果字符串是“string\u countryCode”,我必须将其替换为“string\u scontrycode”

正如你所看到的,在哪里有,我用大写字母替换它,后面是下一个字符

更多示例:

string\u postalCode将替换为string\u sPostalCode

string\u firstName将替换为string\u sffirstname

请帮忙。 最好用C#语法回答

我不知道为什么,但可能类似于:

static readonly Regex hungarian =
        new Regex(@"(string\s+_)([a-z])", RegexOptions.Compiled);
...
string text = ...
string newText = hungarian.Replace(text, match =>
    match.Groups[1].Value + "s" +
    match.Groups[2].Value.ToUpper());
请注意,正则表达式不一定会显示以下示例(有效的C#):

我不知道为什么,但可能是这样的:

static readonly Regex hungarian =
        new Regex(@"(string\s+_)([a-z])", RegexOptions.Compiled);
...
string text = ...
string newText = hungarian.Replace(text, match =>
    match.Groups[1].Value + "s" +
    match.Groups[2].Value.ToUpper());
请注意,正则表达式不一定会显示以下示例(有效的C#):


如果字符串的模式如您所示,则不需要使用正则表达式。您可以使用string类的Replace方法执行此操作。

如果字符串的模式如您所示,则不需要使用正则表达式。您可以使用string类的Replace方法来实现这一点

StringBuilder ss=new StringBuilder(); 
         string concat="news_india";//or textbox1.text;          
         int indexs=concat.LastIndexOf("_")+1;//find "_" index 
         string find_lower=concat.Substring(indexs,1); 
         find_lower=find_lower.ToUpper(); //convert upper case 
         ss.Append(concat);
         ss.Insert(indexs,"s"); //s->what ever u like give "+your text+"
         ss.Insert(indexs+1,find_lower);
试试这个……它会有用的


试试这个……它会有用的

你想介绍匈牙利人吗。。。为什么?我同意马克的观点。我不确定我是否可以通过帮助您来宽恕这种行为:)好吧,如果“s”表示例如“安全”(已检查的用户输入),这不一定是一件坏事。实际上我有一个特定的命名约定要使用,例如属性字段必须是_typeVariableName,但我遵循_variableName。因此,我需要避免再次键入,只需编写一个程序来更改约定(我将它们中的大多数作为字符串,因此我引入了_sPropertyName来代替_propertyName)…(在datetime的情况下,它将是_dtDateOfJoining,,但这些很少,可以手动完成)您应该研究像fxCop/styleCop这样的工具。匈牙利符号是不赞成的,你应该考虑命名传送(如果你需要在名称中定义类型),比如“后PoStESTRR”。你想介绍匈牙利语吗?为什么?我同意马克的观点。我不确定我是否可以通过帮助您来宽恕这种行为:)好吧,如果“s”表示例如“安全”(已检查的用户输入),这不一定是一件坏事。实际上我有一个特定的命名约定要使用,例如属性字段必须是_typeVariableName,但我遵循_variableName。因此,我需要避免再次键入,只需编写一个程序来更改约定(我将它们中的大多数作为字符串,因此我引入了_sPropertyName来代替_propertyName)…(在datetime的情况下,它将是_dtDateOfJoining,,但这些很少,可以手动完成)您应该研究像fxCop/styleCop这样的工具。匈牙利符号是不赞成的,你应该考虑命名传送(如果你需要定义名字中的类型),比如,后面的字母,当然。但是如何使下一个字符成为上一个字符。如果你读了这个问题,搜索词是不固定的,所以这不完全符合它。他需要一个正则表达式,我想会的。如果所有字符串都像“string”\u something,他需要stringVariable.Replace(“string”\u,“string”\u s”是的,当然……但是如何使下一个字符成为大写。ie\u c必须是“u sC”。我是新手..yourString.Replace(“\u c”,“\u sC”)会的。如果你读了这个问题,搜索词是不固定的,所以它不会完全固定。他需要一个正则表达式。我想会的。如果所有字符串都像“string\u某物”,他需要stringVariable.Replace(“string\u”,“string\u s”