ex me paste
Phone: 111-111-111
Phone: 222-222-222
Phone: 333-333-333
我想要richtextbox自动过滤器并以richtextbox格式显示
111-111-111
222-222-222
333-333-333
但我的代码将显示在richtexbox
Phone: 111-111-111
Phone: 222-222-222
Phone: 333-333-333111-111-111
222-222-222
333-333-333
我想删除粘贴数据并显示数据过滤器
Private Sub RichTextBox1_TextChanged(sender As Object, e As EventArgs) Handles RichTextBox1.TextChanged
For Each m As Match In Regex.Matches(RichTextBox1.Text, getnumber)
RichTextBox1.Text &= m.Value & Environment.NewLine
Next
End Sub
Dim getnumber As String = "(?:\d{3}\-){2}\d{3}"
答案 0 :(得分:0)
问题是,在文本更改后,您将RichTextBox文本与过滤后的文本连接在一起。在您的示例中,以下文本:
Phone: 111-111-111
Phone: 222-222-222
Phone: 333-333-333
添加到RichTextoBox中,然后添加以下文本:
111-111-111
222-222-222
333-333-333
由于您只在每次匹配后添加一个NewLine(例如111-111-111
),因此上面的两个字符串将在没有NewLine分隔的情况下显示。
要解决此问题,请添加一个临时字符串变量,该变量将包含"过滤后的文本",在您调用它时,最后将此变量的值设置为您的RichTextBox' s文:
Private getnumber As String = "(?:\d{3}\-){2}\d{3}"
Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged
Dim filteredText As String = ""
For Each m As Match In Regex.Matches(RichTextBox1.Text, getnumber)
filteredText &= m.Value & Environment.NewLine
Next
' TrimEnd() will remove the last NewLine
Me.RichTextBox1.Text = filteredText.TrimEnd()
End Sub