从多行文本框中剥离线条

时间:2016-11-21 05:47:28

标签: c# wpf string replace

我有一个多行文本框,文字类似于:

Tester Testman
None
None
18 Test Court
Upper Test
QLD 4000

我试图删除单词None的所有行,我尝试过以下操作:

private void TextBoxShippingLabel_TextChanged(object sender, TextChangedEventArgs e)
{
    TextBoxShippingLabel.Text = TextBoxShippingLabel.Text.Replace("None", null);
}

然而,不是删除线条而是将它们留空,所以它看起来如下:

Tester Testman


18 Test Court
Upper Test
QLD 4000

如何更改我的代码以删除仅包含单词" None"完全?我想要的输出是:

Tester Testman
18 Test Court
Upper Test
QLD 4000

3 个答案:

答案 0 :(得分:3)

这是一个简单的代码片段:

private void UnwantedNoneRemover(TextBox textBox) {
   var lines = textBox.Lines;
   var updatedLines = new List<string>();
   foreach (var line in lines) {
       if (line != "None") { updatedLines.Add(line); }
   }
   textBox.Lines = updatedLines.ToArray();
}

答案 1 :(得分:2)

TextBoxShippingLabel.Text = string.Join(System.Environment.NewLine,TextBoxShippingLabel.Text.Split(new Char[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries).Where(x=>x!="None"));

答案 2 :(得分:1)

支持那些&#34;无&#34;除了换行符之外,行可以包含空格,您可以使用:

Regex regExp = new Regex(@"None[\s]*" + System.Environment.NewLine);

TextBoxShippingLabel.Text = regExp.Replace(TextBoxShippingLabel.Text,"");

正则表达式无[\ s] *查找无字后跟零个或多个空格。连接System.Environment.NewLine用于删除换行符。

不要忘记添加引用:)

using System.Text.RegularExpressions;