替换包含特定字符串w / C的文件中的行#

时间:2016-10-05 03:38:07

标签: c# regex string replace str-replace

我有一个配置文件,其中每一行都是一个设置和值组合。我不知道设置的值是什么,但我知道设置的名称,我需要更新整行。我发现了很多使用File.ReadAllText.Replace和File.WriteAllText的例子,但这些例子正在用另一个字符串替换特定字符串。

示例设定线:

Server.ServerType=official

我需要找到包含" Server.ServerType ="的行。在这个例子中,我将用" Server.ServerType = modded"。

替换它

使用C#做最简单的方法是什么?

1 个答案:

答案 0 :(得分:0)

在“=”符号上拆分线,然后使用第一个元素进行测试并根据需要更改第二个元素,然后通过替换“=”符号进行连接。我使用了一个开关,假设你将进行多次测试(比很多IF / THEN更容易):

  string line = ReadLine();
  string[] parts = line.Split('=');
  switch(parts[0]){
      case "Server.ServerType":
         parts[1] = "modded";
         break;
         ....
  }
  string newline = String.Join("=",parts);
  WriteLine(newline);

如果多次更改值,可以使用:

 Dictionary<string,string> values = new Dictionary<string,string>
 string[] parts = Readline().Split('=');
 values.Add(parts[0],parts[1]);
 values["Server.ServerType"] = "modded";
 ....
 foreach(KeyValuePair<string,string> kvp in values){
    WriteLine(kvp.Key+"="+kvp.Value);
 }