C#如何提取文本文件中已知前缀字符串后的对应内容
C# 实现指定前缀内容提取功能
实现思路
- 逐行读取目标文本文件,避免大文件占用过多内存
- 预先定义前缀与对应TextBox的映射关系,减少冗余代码
- 匹配到对应前缀后,截取前缀后的内容,再去除末尾多余的引号、括号、空格即可得到目标值
完整实现代码(WinForm场景)
你可以直接在按钮点击等触发事件中调用以下逻辑:
using System.IO; using System.Collections.Generic; // 1. 定义前缀与对应TextBox的映射关系,替换为你界面上实际的TextBox控件名 var prefixMap = new Dictionary<string, TextBox>() { {"-load1 ", textBox1}, {"-load2 ", textBox2}, {"-load3 ", textBox3}, {"-load4 ", textBox4}, {"KEY PASS: ", textBox5} }; // 2. 替换为你的文本文件实际路径 string filePath = @"C:\xxx\你的目标文件.txt"; if (!File.Exists(filePath)) { MessageBox.Show("目标文件不存在"); return; } // 3. 逐行处理提取内容 string[] allLines = File.ReadAllLines(filePath); foreach (string line in allLines) { foreach (var kvp in prefixMap) { // 已赋值的TextBox直接跳过,提升效率 if (!string.IsNullOrEmpty(kvp.Value.Text)) continue; int prefixPos = line.IndexOf(kvp.Key); if (prefixPos >= 0) { // 截取前缀之后的内容 string rawContent = line.Substring(prefixPos + kvp.Key.Length); // 去除末尾多余的引号、空格、右括号等无用字符 string result = rawContent.TrimEnd('"', ' ', ')'); kvp.Value.Text = result; break; } } }
如果你的文本内容已经提前加载到字符串变量中,只需要把File.ReadAllLines替换为按换行符分割字符串得到行数组即可,后续处理逻辑完全一致,可直接提取到你预期的结果。
内容的提问来源于stack exchange,提问作者Công Ngô Chí
相关产品推荐
相关产品推荐

