替换文本文件中的文本
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]+
”将匹配“=”之后的任何内容。
【讨论】:
以上是关于替换文本文件中的文本的主要内容,如果未能解决你的问题,请参考以下文章