如何移除制表符后空格及行尾空格?C#代码优化求助
解决方案
针对你的需求,分两步处理字符串即可解决问题,以下是优化后的C#代码及说明:
处理逻辑
- 保留制表符,删除其后的空格:匹配制表符
\t后跟一个或多个空格的组合,仅保留制表符; - 删除每行末尾的空格:在多行模式下匹配每行结尾的空白字符,替换为空。
完整代码
using System.Text.RegularExpressions; public string CleanContent(string content) { // 保留制表符,删除制表符后的所有空格 content = Regex.Replace(content, @"(\t)\s+", "$1"); // 删除每行末尾的空白(含空格、制表符等),需启用多行模式 content = Regex.Replace(content, @"\s+$", "", RegexOptions.Multiline); return content; }
关键说明
- 你之前的正则
@"\s+$"无效,是因为默认情况下$仅匹配整个字符串的结尾,添加RegexOptions.Multiline后,$会匹配每行的换行符前的位置,才能正确删除每行末尾的空格; - 若仅需删除每行末尾的空格(不包含制表符),可将第二个正则改为
@" +$"; - 测试示例:输入字符串
"LastNameEmployee\t task\nTestLine ",处理后会变为"LastNameEmployee\ttask\nTestLine"。
内容的提问来源于stack exchange,提问作者Dunkeltod 13
相关产品推荐
相关产品推荐

