【问题标题】:I want to find a unspecified String between two other strings我想在其他两个字符串之间找到一个未指定的字符串
【发布时间】:2019-12-05 16:00:23
【问题描述】:

例子:

[按钮点击] 两个指定的字符串 (<title>[...]</title>) Msgbox(未指定字符串的名称(两个标题标签之间的字符串))

因为标签之间的字符串是可变的,我不能使用 (if a.contains(textbox1.text) = true Then [...])

【问题讨论】:

  • 您可以使用字符串变量代替文字文本“EXAMPLE”。
  • ... 或"EXAMPLE".Contains(TextBox1.Text)(顺便说一句,不是...Contains(TextBox1))。或者,根据用例(IMO,不完全清楚那是什么),使用 IndexOf() + LastIndexOf() 或正则表达式(例如,>(.*?)<

标签: vb.net vb.net-2010


【解决方案1】:

根据@Jimi 的评论

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim s = "<title>Hello World</title>"
    Dim startIndex = s.IndexOf(">") + 1
    Dim stringLength = s.LastIndexOf("<") - startIndex
    Dim titleText = s.Substring(startIndex, stringLength)
    Debug.Print(titleText)
End Sub

即时窗口显示

你好世界

【讨论】:

  • 但是“Hello world”没有被定义。它的变量从文件到文件。
  • 此代码将找到两个标题标签之间的任何字符串。 Hello World 只是标签之间可能存在的一个示例。
  • 如果文件中有多个标签怎么办。我的意思是,我会用它来用那个程序搜索整个 html 文件。
  • 这超出了您原始问题的范围。使用您尝试解析的字符串的示例提出一个新问题。
【解决方案2】:

您可以使用 Xml 序列化,因为您的文本看起来像 Xml...

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim s As New System.Xml.Serialization.XmlSerializer(GetType(Title))
        Dim t As Title
        Using sr As New System.IO.StringReader("<title>[...]</title>")
            t = CType(s.Deserialize(sr), Title)
        End Using
        MessageBox.Show(t.UnspecifiedString)
    End Sub
End Class

<System.Xml.Serialization.XmlRoot("title")>
Public Class Title
    <System.Xml.Serialization.XmlText>
    Public Property UnspecifiedString As String
End Class

好吧,如果这就是你所做的一切,也许这有点过头了,但我怀疑&lt;title&gt; 只是 Xml 文档中的一个节点。然后可能值得在 VB 中定义整个模型并反序列化整个文件。您可以在下面看到我最近的一些与此相关的其他答案

How to deserialize 5-6 level tags using VB.NET

Write and read data from XML file through VB.Net at launch

Retrieve specific part of XML tree value

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 2020-06-03
    相关资源
    最近更新 更多