【问题标题】:Matching Word/ Text匹配单词/文本
【发布时间】:2016-07-11 14:31:41
【问题描述】:

通常我使用来自网络浏览器的元素来添加来自网络浏览器的字符串或标签。这次我使用 webclient 来下载文档文本,如图所示;

Dim sourceString As String = New System.Net.WebClient().DownloadString("hats,com")

所以基本上我下载了一个网站的文档,现在这个文档有一堆以相同单词开头的网站,在这种情况下> https,如下所示。

"x" "https://hats.com/xxx", "x"

所以我试图获取以 (https://hats.com/xxx) 开头的所有单词(在本例中为链接)并将它们添加到列表框中。

所以第一个索引将是第一个以 url 开头的匹配/单词,第二个索引将是找到的第二个以相同开头的 url。

【问题讨论】:

  • 给我们看一些代码...
  • 我可以将 webclient 下载到文本框,从那里我不知道该怎么做,这就是我问的原因。我可以通过 .startswith 或 .contains 进行第一个单词搜索,但我不知道将从第一个字符串匹配 = 第一个索引中以相同字符串开头的“所有”获取到列表框中。第二个匹配字符串=第二个索引。
  • HtmlAgilityPack(可从 Nuget 获得)可能有助于您以与 Webbrowser 控件类似的方式(但不完全相同)导航 HTML 代码
  • 我真的不想涉及其他内容,只是想用我下载的文本保持简单,因为它最容易做到,只是获取包含开头的单词(链接) https,无论如何都要研究htmlagility,但如果它更简单,会有所帮助。谢谢
  • 恕我直言,不使用正确的工具来完成这项工作是愚蠢的;但如果你想坚持下去;如果您有可靠的方法来确定链接的结束,您可以将 String.IndexOfString.Substring 结合使用

标签: vb.net


【解决方案1】:

我不明白你的意思,但也许这会起作用(试试哪一个最适合你)我想你想要第二个。

Dim str1 As String = TextBox1.Text
    str1 = str1.Replace(",", "")
    str1 = str1.Replace(" ", "")
    Dim str2 As String() = str1.Split({""""}, StringSplitOptions.RemoveEmptyEntries)
    Dim str3 As String = str2(0)
    For Each i In str2
        If i.StartsWith(str3) Then
            ListBox1.Items.Add(i)
        End If
    Next

或者

Dim str1 As String = TextBox1.Text
    str1 = str1.Replace(",", "")
    str1 = str1.Replace(" ", "")
    Dim str2 As String() = str1.Split({""""}, StringSplitOptions.RemoveEmptyEntries)
    For Each i In str2
        If i.StartsWith("https") Then
            ListBox1.Items.Add(i)
        End If
    Next

TextBox1 替换为您的文本框名称,将ListBox1 替换为您的列表框名称。

如果这些都不适合你,请更好地解释你想要什么并添加一些你尝试过的代码。

【讨论】:

  • 第二个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-03
  • 2021-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多