积极答复者
查找关键字问题

问题
-
Dim fName As String = "c:\EJ111031_111101.txt"
Dim testTxt As New StreamReader(fName)
Dim allRead As String = testTxt.ReadToEnd()testTxt.Close()
Dim regMatch As String = "ACCUMULATED DEPOSIT TOTAL"
If Regex.IsMatch(allRead, regMatch) Then
Dim a As String
MessageBox.Show("Found")Else
MessageBox.Show("Not Found")
End If
我导入了一个txt文件,然后显示在richtextbox.我想查找ACCUMULATED DEPOSIT TOTAL在richtextbox里,并把那一行显示在richtextbox2(不包括ACCUMULATED DEPOSIT TOTAL,只要获取ACCUMULATED DEPOSIT TOTAL后面的全部字符).该怎样写??
例子
ACCUMULATED DEPOSIT TOTAL=100
我想把全部符合ACCUMULATED DEPOSIT TOTAL在richtextbox里,把100字符显示在richtextbox2。。
- 已编辑 ckjason 2012年2月16日 4:05
答案
-
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim regMatch As String = "ACCUMULATED DEPOSIT TOTAL=RM(\d+)"
For Each ms As Match In Regex.Matches(TextBox2.Text, regMatch)
Dim s As String = ms.Value
TextBox1.Text &= (s & vbCrLf)
TextBox1.Text &= (s.Substring(s.IndexOf("RM") + 2))
Next
End Sub
QQ我:
下载MSDN桌面工具(Vista,Win7)
我的博客园
慈善点击,点击此处
- 已编辑 ThankfulHeartModerator 2012年2月16日 7:02
- 已标记为答案 ckjason 2012年2月16日 7:10
全部回复
-
使用String.IndexOf和SubString函数:
Module A
Public Sub main()
Dim allRead As String
= "ACCUMULATED DEPOSIT TOTAL=100;abcdeACCUMULATED DEPOSIT TOTAL=200;kdhfjdACCUMULATED DEPOSIT TOTAL=500"
Dim regMatch As String = "ACCUMULATED DEPOSIT TOTAL=\d+"
For Each ms As Match In Regex.Matches(allRead, regMatch)
Console.WriteLine("查找到的字符串:")
Dim s As String = ms.Value
Console.WriteLine(s & vbCrLf & "后边的字符")
Console.WriteLine(s.Substring(s.IndexOf("=") + 1))
Next
End Sub
End Module -
使用String.IndexOf和SubString函数:
Module A
Public Sub main()
Dim allRead As String
= "ACCUMULATED DEPOSIT TOTAL=100;abcdeACCUMULATED DEPOSIT TOTAL=200;kdhfjdACCUMULATED DEPOSIT TOTAL=500"
Dim regMatch As String = "ACCUMULATED DEPOSIT TOTAL=\d+"
For Each ms As Match In Regex.Matches(allRead, regMatch)
Console.WriteLine("查找到的字符串:")
Dim s As String = ms.Value
Console.WriteLine(s & vbCrLf & "后边的字符")
Console.WriteLine(s.Substring(s.IndexOf("=") + 1))
Next
End Sub
End Module
1。 DimallReadAsString
= "ACCUMULATED DEPOSIT TOTAL=100;abcdeACCUMULATED DEPOSIT TOTAL=200;kdhfjdACCUMULATED DEPOSIT TOTAL=500" '这是什么意思?2。 我要修改哪个代码才可以在richtextbox查找那个关键词?
-
1)第一句话是我自己随便写的,实际上是指代你从txt中读取的真实内容,我方便测试而已。
2)你运行我的代码呗,自己看看啊;注意ForEach这里,Console.WriteLine可能是你需要替换成richTextBox的内容。
Dim allRead As String = "ACCUMULATED DEPOSIT TOTAL=100;abcdeACCUMULATED DEPOSIT TOTAL=200;kdhfjdACCUMULATED DEPOSIT TOTAL=500"
Dim regMatch As String = "ACCUMULATED DEPOSIT TOTAL=\d+"
For Each ms As Match In Regex.Matches(RichTextBox1.Text, regMatch)Dim s As String = ms.Value
RichTextBox2.Text = (s & vbCrLf )
RichTextBox2.Text = (s.Substring(s.IndexOf("=") + 1))
Next
我稍微修改了,但是没有反应(按下按键钮时)。有什么错误
??
-
你是如何导入txt到RichTextBox的?请这样导入:
RichTextBox2.LoadFile(路径, RichTextBoxStreamType.PlainText);
否则你导入的默认是RTF格式的,编码完全不一样,肯定找不到的!
如果依旧不行,请改用TextBox看看。使用System.IO.ReadAllText读取全部文本文件内容,然后赋值给TextBox!
- 已编辑 ThankfulHeartModerator 2012年2月16日 6:20
-
你是如何导入txt到RichTextBox的?请这样导入:
RichTextBox2.LoadFile(路径, RichTextBoxStreamType.PlainText);
否则你导入的默认是RTF格式的,编码完全不一样,肯定找不到的!
如果依旧不行,请改用TextBox看看。使用System.IO.ReadAllText读取全部文本文件内容,然后赋值给TextBox!
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
OpenFileDialog1.CheckFileExists = True
OpenFileDialog1.CheckPathExists = True
OpenFileDialog1.DefaultExt = "txt"
OpenFileDialog1.FileName = ""
OpenFileDialog1.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*"
OpenFileDialog1.Multiselect = False
If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
TextBox2.Text = File.ReadAllText(OpenFileDialog1.FileName)End If
End SubPrivate Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim allRead As String = "ACCUMULATED DEPOSIT TOTAL=100;abcdeACCUMULATED DEPOSIT TOTAL=200;kdhfjdACCUMULATED DEPOSIT TOTAL=500"
Dim regMatch As String = "ACCUMULATED DEPOSIT TOTAL=\d+"
For Each ms As Match In Regex.Matches(TextBox2.Text, regMatch)Dim s As String = ms.Value
TextBox1.Text &= (s & vbCrLf)
TextBox1.Text &= (s.Substring(s.IndexOf("A") + 1))
NextEnd Sub
没有内容在textbox1。。。
-
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim regMatch As String = "ACCUMULATED DEPOSIT TOTAL=RM(\d+)"
For Each ms As Match In Regex.Matches(TextBox2.Text, regMatch)
Dim s As String = ms.Value
TextBox1.Text &= (s & vbCrLf)
TextBox1.Text &= (s.Substring(s.IndexOf("RM") + 2))
Next
End Sub
QQ我:
下载MSDN桌面工具(Vista,Win7)
我的博客园
慈善点击,点击此处
- 已编辑 ThankfulHeartModerator 2012年2月16日 7:02
- 已标记为答案 ckjason 2012年2月16日 7:10