2016-04-24 49 views

回答

0

你既可以1)使用Web瀏覽器的內置的方法來通過全體<h1>標籤迭代或獲取最前面的一個,或2)使用正則表達式。

使用內置的方法

迭代雖然所有標籤很簡單,你只需要使用HtmlDocument.GetElementsByTagName()方法。

入門找到的第一個標籤(按時間順序):

Dim h1Text As String = WebBrowser1.Document.GetElementsByTagName("h1")(0).InnerText 

迭代通過所有標籤:

Dim h1Strings As New List(Of String) 

For Each h1Tag As HtmlElement In WebBrowser1.Document.GetElementsByTagName("h1") 
    h1Strings.Add(h1Tag.InnerText) 
Next 

使用正則表達式

使用正則表達式是不是很難,如果你知道你在做什麼。與認沽開始在你的代碼文件的最頂端此Imports聲明:

Imports System.Text.RegularExpressions 

現在你只需要搜索的Web瀏覽器的DocumentText<h1>標籤。

Dim h1Text As String = Regex.Match(WebBrowser1.DocumentText, "(?<=<h1[^<>\/]*>)((?!<\/h1>).)*(?=<\/h1>)", RegexOptions.IgnoreCase).Value 

正則表達式模式說明:

(?<=<h1[^<>\/]*>)((?!<\/h1>).)*(?=<\/h1>)

(?<= ...):匹配的文本必須與任何...是之前。

<h1[^<>\/]*>:將<h1>開始標記與任何屬性匹配。

[^<>\/]*:匹配所有不是<,>/的字符。

((?!<\/h1>).)*:匹配不是之前的所有字符</h1>標記。

(?=<\/h1>):匹配必須是 後面跟着</h1>標記。

+0

如果這適用於您,請記住通過按下帖子左側的綠色複選標記標記爲已接受的答案。 –

相關問題