You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#实现name.txt中每个David前插入指定语句的代码补全需求

解决在每个"David"前插入指定语句的C#方案

嘿,我来帮你搞定这个需求!你的核心目标是在name.txt里每一处出现的"David"的前一行插入find my name(或者你示例里的find my word,我会说明怎么调整),对吧?咱们直接完善你的代码,分两种场景处理:


场景1:文件每行一个姓名(符合你“前一行添加”的需求描述)

比如原文件内容是:

Jacob
William
Ethan
James
David
Olivia
David

处理后会变成:

Jacob
William
Ethan
James
find my name
David
Olivia
find my name
David

对应的完整代码:

using System.IO;
using System.Text.RegularExpressions;
using System.Windows.Forms;

private void button1_Click(object sender, EventArgs e)
{
    string filePath = "name.txt";
    if (File.Exists(filePath))
    {
        // 读取文件全部内容
        string content = File.ReadAllText(filePath);
        // 要插入的语句,如果你需要加引号就改成 "\"find my word\""
        string insertSentence = "find my name";
        
        // 正则匹配所有独立行的David:兼顾行首和行中换行后的情况
        // Multiline模式让^/$匹配每行的开头/结尾,确保只匹配整行是David的情况
        string regexPattern = @"(^|\n)David$";
        // 替换规则:保留原来的行首标记(空或换行),插入语句,再加上David
        string replacement = $@"$1{insertSentence}\nDavid";
        
        // 执行全局替换
        string updatedContent = Regex.Replace(content, regexPattern, replacement, RegexOptions.Multiline);
        
        // 将修改后的内容写回文件
        File.WriteAllText(filePath, updatedContent);
        
        // 可选:提示用户处理完成
        MessageBox.Show("姓名文件处理完成!");
    }
    else
    {
        MessageBox.Show("找不到name.txt文件,请检查路径!");
    }
}

场景2:文件是一行内用空格分隔姓名(符合你给出的示例)

如果你的原文件是像这样的单行内容:

Jacob William Ethan James David

想要处理成:

Jacob William Ethan James find my name David

只需要修改正则部分即可,把代码里的正则匹配和替换改成:

// 匹配所有独立的David(前面是行首或空格,避免匹配类似Davidson的情况)
string regexPattern = @"(^|\s)David";
// 在David前插入语句和空格
string replacement = $@"$1{insertSentence} David";

小提示

  • 如果需要插入带引号的语句(比如你示例里的"find my word"),把insertSentence改成:string insertSentence = "\"find my word\"";(用转义引号实现)
  • 记得在代码顶部引入System.Text.RegularExpressions命名空间,不然正则用不了

内容的提问来源于stack exchange,提问作者sertegh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:13:05