C# 从多行文本框中剥离行

C# 从多行文本框中剥离行,c#,wpf,string,replace,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.Te

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

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
Tester Testman
18 Test Court
Upper Test
QLD 4000
但是,这并没有删除这些行,而是将它们保留为空,因此看起来如下所示:

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


18 Test Court
Upper Test
QLD 4000
Tester Testman
18 Test Court
Upper Test
QLD 4000
我如何修改我的代码来删除那些只包含单词“None”的行?我期望的结果是:

如果这些“无”行可能包含除换行符之外的空格,则可以使用以下方法:

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

TextBoxShippingLabel.Text = regExp.Replace(TextBoxShippingLabel.Text,"");
正则表达式None[\s]*查找后跟零个或多个空格的None字。连接System.Environment.NewLine用于删除换行符

不要忘记添加引用:)

如果这些“无”行可能包含除换行符之外的空格,则可以使用以下方法:

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

TextBoxShippingLabel.Text = regExp.Replace(TextBoxShippingLabel.Text,"");
正则表达式None[\s]*查找后跟零个或多个空格的None字。连接System.Environment.NewLine用于删除换行符

不要忘记添加引用:)


下面是一个简单的代码片段:

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();
}
private void UnwantedNoneRemover(TextBox TextBox){
var lines=textBox.lines;
var updatedLines=新列表();
foreach(行中的var行){
如果(行!=“无”){updatedLines.Add(行);}
}
textBox.Lines=updatedLines.ToArray();
}

以下是一个简单的代码片段:

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();
}
private void UnwantedNoneRemover(TextBox TextBox){
var lines=textBox.lines;
var updatedLines=新列表();
foreach(行中的var行){
如果(行!=“无”){updatedLines.Add(行);}
}
textBox.Lines=updatedLines.ToArray();
}

出于好奇,为什么多行文本框被命名为label?@EmrahSüngü哇!因为我很快就完成了命名结构,感谢您现在纠正了警报。我现在正在为您编写一个片段。希望我能及时赶到只是出于好奇,为什么多行文本框命名为label?@EmrahSüngüops!因为我很快就完成了命名结构,感谢您现在纠正了警报。我现在正在为您编写一个片段。希望我能在timeNote中说明,如果最后一行包含(仅)单词
“None”
,则不会删除最后一行。注意,如果最后一行包含(仅)单词
“None”
,则不会删除最后一行。是的,当然,我注意到well@BenVoigt,我已经更新了解决方案,使其更具可读性和“更正确”这一解决方案也与字符串末尾出现的
“None”
不匹配,单独出现在最后一行。是的,当然,我注意到well@BenVoigt,我更新了解决方案,使其更具可读性和“更正确”