如何在c#中替换文件中的多个文本?

我正在使用c#自动化进程.我的脚本如下所示,

 UPDATE   Table
 SET   param_val = REPLACE(param_val,'Proxy430/','Proxy440/')
 WHERE   param_key = 'PROXY_URL'; 

 UPDATE   Table 
 SET   param_val = REPLACE (param_val, '.420/', '.430/')
 WHERE   param_val LIKE '%.420/%';  

对于每个月,我们将升级版本,如44代替43和43代替42并运行此脚本.为了自动化,我编写了C#代码并在代码下面使用

string text = File.ReadAllText(filePath);
text.Replace(oldvale, newvalue);
File.WriteAllText(filepath, text);

但是,问题是它只能取代一个单词.如何替换文件中的两个文本.在我的情况下,Proxy430应该作为Proxy440和Proxy440一次性替换为Proxy450.

怎么做到这一点?

最佳答案 如果按正确顺序调用replace,则可以在一行中完成两次替换.

string TestString = @"UPDATE   Table
SET param_val = REPLACE(param_val, 'Proxy430/', 'Proxy440/')
WHERE param_key = 'PROXY_URL';

UPDATE Table
SET param_val = REPLACE(param_val, '.420/', '.430/')
WHERE param_val LIKE '%.420/%'; ";

const string oldFrom = "Proxy430";
const string oldTo = "Proxy440";
const string newFrom = "Proxy440";
const string newTo = "Proxy450";

string result = TestString.Replace(newFrom, newTo).Replace(oldFrom, oldTo);
Console.WriteLine(result);

输出是:

UPDATE   Table
 SET param_val = REPLACE(param_val, 'Proxy440/', 'Proxy450/')
 WHERE param_key = 'PROXY_URL';

UPDATE Table
 SET param_val = REPLACE(param_val, '.420/', '.430/')
 WHERE param_val LIKE '%.420/%';
点赞