C# 按'>'拆分多行地址文本后拼接为单行的实现问题
解决方案
你的原有代码存在两处核心错误:
Split方法传入的分隔符错误,不应该传入全量文本x,应该指定分隔符为'>'- 拆分后没有对单个地址段做换行替换处理,直接拼接全量内容无法得到逐行的单行地址
可直接运行的实现代码
using System; using System.IO; using System.Linq; using System.Text.RegularExpressions; public class Program { public static void Main() { // 替换为你的实际文件路径 string textFilePath = @"C:\your\address\file.txt"; string allText = File.ReadAllText(textFilePath); // 按>符号拆分,自动过滤空段、去除段首尾空白 var addressSections = allText.Split('>', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); foreach (var section in addressSections) { // 替换所有换行符为空格,合并连续空格,最后处理首尾空白 string singleLineAddr = Regex.Replace( section.Replace("\r", " ").Replace("\n", " "), @"\s+", " " ).Trim(); Console.WriteLine(singleLineAddr); } } }
代码逻辑说明
- 拆分时用
StringSplitOptions.RemoveEmptyEntries过滤掉拆分产生的空内容,StringSplitOptions.TrimEntries提前去掉每个地址段首尾的换行、空格,减少后续处理量 - 先把地址段内所有回车、换行符统一替换为空格,再用正则合并连续的多个空格为单个,避免出现多余的空白
- 最终输出的内容完全匹配你需要的单行地址格式
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

