读取文件并在某个单词后替换测试

MrB*_*nzy 0 c# replace find

我有几个文件,例如:

FileBegin Finance  Open 87547.25 Close 548484.54 EndDay 4 End
Run Code Online (Sandbox Code Playgroud)

另一个文件示例:

FileBegin Finance  Open 344.34 Close -3434.34 EndDay 5 End
Run Code Online (Sandbox Code Playgroud)

我需要读取文件中的文本,并在单词Open之后仅替换数字值,并在单词Open完整之前和之后保留文本的其余部分.我一直在使用这段代码:

    string fileToRead = "c:\\file.txt";
    public void EditValue(string oldValue, string newValue, Control Item)
    {
        if (Item is TextBox)
        {
            string text = File.ReadAllText(fileToRead);
            text = text.Replace(oldValue, newValue);
            File.WriteAllText(activeSaveFile, text);
        }
     }
Run Code Online (Sandbox Code Playgroud)

在单词后面替换数字值的最佳方法是open什么?

jhe*_*ngs 5

使用正则表达式:

Regex rgx = new Regex(@"Open [^\s]+");
string result = rgx.Replace(text, newValue);
File.WriteAllText(activeSaveFile, result );
Run Code Online (Sandbox Code Playgroud)

使用此方法,您可以将regex对象存储在方法之外,以避免每次重新编译它.我猜它与你的情况下的文件I/O相比不会产生显着的性能影响,但在其他情况下这是一个很好的做法.