Как удалить строки vb.net Richtextbox, которые не содержат определенный текст?

Я использую следующий код для удаления строк из Richtextboxes, но я могу только указать, какую строку удалить. Мне нужно удалить все строки, которые не содержат конкретного текста, можно ли это сделать с некоторыми изменениями моего кода?

1-й кусок:

Private Property lineToBeRemovedlineToBeRemoved As Integer

Вторая часть:

Dim lineToBeRemoved As Integer = 0
 lineToBeRemovedlineToBeRemoved = lineToBeRemoved - 0
 Dim str As String = RichTextBox1.Lines(lineToBeRemoved)
 RichTextBox1.Find(str & vbCr)
 RichTextBox1.SelectedText = ""
3 ответа

Этот код удалит любую строку из richtextbox RichTextbox1, которая не содержит в нем "Test". Не забудьте добавить Imports System.Text.RegularExpressions в начало вашего кода.

Private Sub RemoveLines()
 Dim lines As New List(Of String)
 lines = RichTextBox1.Lines.ToList
 Dim FilterText = "Test"

 For i As Integer = lines.Count - 1 To 0 Step -1
 If Not Regex.IsMatch(lines(i), FilterText) Then
 lines.RemoveAt(i)
 End If
 Next

 RichTextBox1.Lines = lines.ToArray

End Sub


Вы код не близко. Вы должны начать все сначала. Используйте цикл for для прохождения строк RichTextBox. Если текст не находится в строке, удалите его. Совет. Может быть проще перейти от последней строки к первой, чтобы избежать проблем при удалении.


Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
 RTB.Select(RTB.GetFirstCharIndexFromLine(2), RTB.Lines(2).Count)
 RTB.SelectionLength = RTB.Lines(2).Length + 1
 RTB.SelectedText = ""
End Sub

licensed under cc by-sa 3.0 with attribution.