搜索字符串并获取两个关键字VB .NET之间的所有内容

时间:2017-04-02 15:30:59

标签: regex string vb.net

我在网上看过很多例子,但我似乎无法找到一个我正在寻找使用正则表达式的例子。我见过许多使用循环并使用大量代码的人,但我想看一下Regex的例子。

我尝试创建的是一个应用程序,它会连接一个网页,一旦发现将该关键字中的文本复制到另一个关键字并将其保存到字符串或文本框中,就会对源搜索关键字不管。

我已经使用网络请求获取信息并将其放入字符串中我只需要在字符串中搜索我要查找的内容。

此应用程序的原因是在网页上搜索我正在使用的某些软件的更新版本。我想监视更新和应用程序,以便在有更新时通知我。只是一个简单的应用程序,但有问题搜索我需要的东西。

For Example:
first words to search for: Server 64-bit
second words/characters to search for: </div>

首先抓住中间的所有内容,并将最后一个单词保存为字符串。

编辑:我想抓住的信息就是这个......

Server 64-bit
                  <span class="version">
          3.0.13.6
                      </span>
              </h3>
                    <div class="checksum">SHA256: c7eeb1937b0bce0b99e7c7e20de030a4b71adcaf09750481801cfa361433522f</div>

2 个答案:

答案 0 :(得分:0)

也许不是最漂亮的解决方案,但我会将其保存为字符串。然后用string.contain(“Server 64-Bit”)迭代它,然后拆分整个东西,然后在下一个分割字符串的剩余部分,只检索第一个部分。

<div class="outter">
  <div class="inner">

  </div>
</div>

我目前只在我的手机上,所以我实际上无法对此进行测试,但工作。

答案 1 :(得分:0)

您可以使用以下代码与RegEx一起返回整个句子,包括您提供的两个关键字

Dim str As String = "first words to search for: Server 64-bit second words/characters to search for: </div>"

str = str.Replace(vbNewLine,"|")
Dim strA As String = Regex.Match(str, "Server 64-bit(.*?)</div>", RegexOptions.Singleline).Value

Msgbox(strA)

或者您可以使用以下表达式仅获取这两个关键字之间的值:

Dim strA As String = Regex.Match(str, "(?<=Server 64-bit)(.*)(?=</div>)", RegexOptions.Singleline).Value