2012-11-13 102 views
1

我想解析垃圾並縮小一堆文本。如果a不匹配,我該如何刪除當前行?我想完全刪除該行:如何從RichTextBox中刪除字符串?

For i As Integer = 0 To RichTextBox1.Lines.Length - 1 
    Dim a As String = RichTextBox1.Lines(i).ToString 
    If Not a = "SaveThisLine" Then 
    'delete the active line 
    End If 
Next 

另外我怎麼會部分匹配?如if not a = "SaveThisLine" & *(使用通配符)。

+1

一開始,我在相反的方向倒是循環 - 其中i爲整數= RichTextBox1.Lines.Length - 1比0步驟-1 - 否則當你刪除線條時,你會發現你正在移動你的行元素。 –

回答

1

我不會碰原文和相當有效AppendLine保存到StringBuilder,所以如果行有效,給它。最後使用StringBuilder.ToString轉儲到RichTextBox1.Text

對於VB.NET部分匹配可以使用原生Like操作:

"aaa" Like "a*" 

返回True

或者使用正則表達式:

System.Text.RegularExpressions.Regex.Match("aaa", "^a").Success 

也返回True

+0

您也可以使用[String.Contains](http://msdn.microsoft.com/en-us/library/dy85x1sa.aspx) –

+0

感謝您的幫助!絕對幫助我得到我的答案。現在我知道關於stringbuilder! –

0

可以做到這一點在這種方式:

For i As Integer = 0 To RichTextBox1.Lines.Length - 1 
     If RichTextBox1.Lines(i) = "2" Then 
      RichTextBox1.Text = Replace(RichTextBox1.Text, RichTextBox1.Lines(i), "", , 1) 
     End If 
    Next