替换文本文件中的文本

Posted

技术标签:

【中文标题】替换文本文件中的文本【英文标题】:Replace Text inside a Text file 【发布时间】:2021-04-04 08:29:03 【问题描述】:

我正在尝试使用btn_click 编辑我的文本文件。我可以让它读取并打印回文本文件,但它没有做我想要的。我想更改 = 之后的文本示例:firebill=A

我得到 firebill=AF firebill=AFG firebill=AFGR 等...,我将 \r\n 添加到我的代码中,然后将其删除一行示例:firebill=R G F A 等...

这是我正在使用的代码。

        private void Btn1_Click(object sender, EventArgs e)
         

        

                ///\n\r
                /// Replaces text in a file.

                string filePath = @"D:\test.txt";               
                string searchText = "firebill=";
                string replaceText = "firebill=" + (txtb1.Text);

            

                    ReplaceInFile(filePath, searchText, replaceText);
            

            void ReplaceInFile(string filePath, string searchText, string replaceText)
            

                StreamReader reader = new StreamReader(filePath);
                string content = reader.ReadToEnd();
                reader.Close();

                content = Regex.Replace(content, searchText, replaceText);

                StreamWriter writer = new StreamWriter(filePath);
              
                writer.Write (content);
                writer.Close();
            
        
    

【问题讨论】:

你能解释一下你的例子吗? 不清楚你希望你的代码做什么。您能否添加文件内容的开始和预期最终结果的示例? 好吧,在我的文本文件中,Fireball=D 下一行 waterball=F 我正在尝试更改 = 所以 Fireball=J 之后的字母 我添加代码将 fireball=U 更改为现在 fireball=T 但它显示 fireball=T add again fireball=TT add again fireball=TTT rewrites firebill= but not the letter 【参考方案1】:

您的正则表达式模式找到“firebill=”并将其替换为“firebill=T”(例如),这意味着“firebill=T”将替换为“firebill=TT”,因为“firebill= " 在文本的开头匹配您的搜索模式。 正确的正则表达式模式(即“searchText”)将是“firebill=[A-Z]+”,因为“[A-Z]+”将匹配“=”之后的任何内容。

【讨论】:

以上是关于替换文本文件中的文本的主要内容,如果未能解决你的问题,请参考以下文章

打开多行文本文件并仅读取其中的特定行。并将值发送到文本框

C语言如何判断文本文档的结束

将 textFields/textArea 写入文本文件

关于C语言中文本文件的逐行读取的实现

C语言打开其他目录下的文本文件

替换文本文档字符的方法