我必须使用以下格式的文本文件:
Word [tab] [tab] Word [回车]
Word [tab] [tab] Word [回车]
Word [tab] [tab] Word [回程]
我希望将标签前的所有单词放到一个数组中,或者创建一个新的文本文件,将标签后的所有单词放到另一个数组中,或创建一个新的文本文件。
这是我的函数,用于将tab之前的单词转换为数组:
受保护的子MakeWordListBeforeTab()
Dim filename As String = "D:\lao\00001.txt"
'read from file'
Dim MyStream As New StreamReader(filename)
'words before tab
Dim WordBeforeTabArr() As String = MyStream.ReadToEnd.Split(CChar("\t"))
MyStream.Close()
'test to see the word in array
For d As Integer = 0 To WordBeforeTabArr.Length - 1
MsgBox(WordBeforeTabArr(d))
Next
End Sub
我写了上面的函数来获取tab之前的所有单词,但是我把所有单词都放到了数组中。我一直在尝试使用上面的Split方法。拆分这些词的另一种方法是什么?有人能告诉我一些代码来完成这项工作吗?
我知道这可以用正则表达式完成,但我还不知道正则表达式。如果你能告诉我如何用正则表达式完成它,那将是非常棒的。感谢。
答案 0 :(得分:2)
您可以在String上尝试拆分功能。它可以像这样使用:
Dim lines() As String = IO.File.ReadAllLines(filename)
For Each line As String In lines
Dim words() As String = _
line.Split(New Char() {vbTab}, StringSplitOptions.RemoveEmptyEntries)
Next
每行的单词数组将是两个单词。每个位置一个字。在循环中拆分输入文件的行时,可以填充两个数组或将值写入文本文件或文件。
答案 1 :(得分:0)
首先,上面的代码没有编译:请参阅以下正确的代码:
Dim lines() As String = IO.File.ReadAllLines(test_Filename)
For Each line As String In lines
Dim words() As String = _
line.Split("\t".ToCharArray()(0), StringSplitOptions.RemoveEmptyEntries)
Next