尝试更正格式不正确的HTML表格。我无法控制源代码,我的应用程序只是将下载文件的内容作为常规文本文件加载。文件内容是一个简单的HTML表,缺少结束</tr>
元素。我正在尝试拆分<tr>
上的内容以获取一个数组,我可以</tr>
到需要它的元素的末尾。当我尝试使用fleContents.Split("<tr>").ToList
分割字符串时,我在结果List(Of String)
中获得的元素比应该存在的要多得多。
这里我是一个显示相同行为的简短测试代码:
Dim testSource As String = "<table><tr><td>8172745</td><tr><td>8172745</td></table>"
Dim testArr As String() = testSource.Split("<tr>")
'Maybe try splitting on a variable because you can't use a string literal containging "<>" in the Split method
Dim seper as String = "<tr>"
testArr As String() = testSource.Split(seper)
'feed it a new string directly
testArr = testSource .Split(New String("<tr>"))
我希望testArr
应该包含3个元素,如下所示:
"<table>"
"<td>8172745</td>"
- 醇>
"<td>8172745</td></table>"
但是,我收到以下数组:
""
"table>"
"tr>"
"td>8172745"
"/td>"
"tr>"
"td>8172954"
"/td>"
- 醇>
"/table>"
有人可以解释一下为什么字符串会按照它们的方式分割,以及如何获得我期望的结果?
答案 0 :(得分:1)
尝试使用像这样的正则表达式
Imports System.Text.RegularExpressions
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim testSource As String = "<table><tr><td>8172745</td><tr><td>8172745</td></table>"
Dim testArr As String() = Regex.Split(testSource, "<tr>")
'Show The Array in TextBox1
TextBox1.Lines = testArr
End Sub
End Class
所有最好的
答案 1 :(得分:1)
您的代码使用Split
方法的不同重载,而不是您所期望的。您需要采用String[]
和StringSplitOptions
参数的方法:
Dim testSource As String = "<table><tr><td>8172745</td><tr><td>8172745</td></table>"
Dim delimeter As String() = { "<tr>" }
Dim testArr As String() = _
testSource.Split(delimeter, StringSplitOptions.RemoveEmptyEntries)
您可以在IDEOne上看到它: