【问题标题】:Remove empty space from the end of a line in a richtextbox从富文本框中的行尾删除空格
【发布时间】:2013-09-28 13:01:31
【问题描述】:

如何在富文本框中删除行尾的空白

原始字符串

我的代码:

string[] lines2 = comparedResultRTB1.Lines;
lines2.ToString().Replace("; );",");");

【问题讨论】:

  • 是的,我需要去掉 ; 之间的空白和;)
  • 这不是我问的;您正在创建一些要执行的 DDL。如果有新行,它不会执行吗?它应该执行得很好......因此,是否有空间有关系吗?
  • 我正在使用这个结果与我的原始结果进行比较。原始结果就像上面的“预期结果”。我使用数据阅读器将我的 DDL 写入richtextbox,还使用正则表达式添加半列;对于每一行。但是在添加每个半列之后,我的原始结果发生了变化,现在想要删除半列并仅用于 after );

标签: c# regex


【解决方案1】:

可以使用Regex 进行替换。从问题中不确定您到底想做什么。如果您想要做的是摆脱所有新行和出现在它们之前的任何空白,您可以这样做:

  Regex regex = new Regex(@"\s*\n");
  string input = lines2.ToString();
  string result = regex.Replace(input, "");

【讨论】:

  • 什么还是一样的?你在看result吗?
【解决方案2】:

添加这一行:

lines2 = lines2.Select(o => o.Trim()).ToArray();

所以你的代码变成了这样:

string[] lines2 = comparedResultRTB1.Lines;
lines2 = lines2.Select(o => o.Trim()).ToArray();
lines2.ToString(); // I'm assuming there is supposed to be an assignment here

如果你不想使用 LINQ,你可以使用这个方法:

string[] TrimLines(string[] lines) {
    var trimmedLines = new List<string>();

    foreach(var line in lines) {
        trimmedLines.Add(line.TrimEnd());
    }

    return trimmedLines.ToArray();
}

在这种情况下,您的代码会变成这样:

string[] lines2 = comparedResultRTB1.Lines;
lines2 = TrimLines(lines2);
lines2.ToString(); // I'm assuming there is supposed to be an assignment here

【讨论】:

    【解决方案3】:

    问题似乎是你在那里有一个换行符,而不仅仅是空格。

    这按预期工作:

    var text = "ALTER TABLE \"TBLCONCESSIONAIREOFFICES\" ADD (\"CNCO_IRISAUTOCONFIRMINVOICE\" NUMBER(" +
        "2,0) DEFAULT 0     --0: No, 1: Yes;    \r\n);";
    
    var splitted = text.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).Select(a => a.Trim());
    
    var result = String.Concat(splitted);
    

    【讨论】:

    • 我发布的代码有效(我在发布之前对其进行了测试)。您一定是在错误地实施某些事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    • 2016-02-29
    • 2012-09-24
    • 2011-04-27
    • 1970-01-01
    相关资源
    最近更新 更多