Поделиться через


Практическое руководство. Идентификация гиперссылок в строке HTML в Visual Basic

В этом примере показано простое регулярное выражение для идентификации гиперссылок в HTML-документе.

Пример

В этом примере используется регулярное выражение <A[^>]*?HREF\s*=\s*"([^"]+)"[^>]*?>([\s\S]*?)<\/A>, которое означает:

  1. Строка " < A ", за которой следуют

  2. Наименьший набор, состоящий из нуля или нескольких символов, в котором отсутствует знак " > ", за которым следуют

  3. Строка " HREF ", за которой следуют

  4. Нуль или более пробелов, за которыми следуют

  5. Символ " = ", за которым следуют

  6. Нуль или более пробелов, за которыми следуют

  7. Кавычки-метка знака, за которым следуют

  8. Набор знаков, не включающий кавычек-меток знака (записи), за которыми следуют

  9. Кавычки-метка знака, за которым следуют

  10. Наименьший набор, состоящий из нуля или нескольких символов, в котором отсутствует знак " > ", за которым следуют

  11. Символ " = ", за которым следуют

  12. Наименьший набор, состоящий нуля или более символов (записи), за которым следуют

  13. Строка "</A>".

Объект Regex инициализируется с регулярным выражением и указывается без учета регистра.

Метод Regex объекта Matches возвращает объект MatchCollection, содержащий сведения обо всех составляющих входной строки, которые соответствуют регулярному выражению.

    ''' <summary>Identifies hyperlinks in HTML text.</summary>
    ''' <param name="htmlText">HTML text to parse.</param>
    ''' <remarks>This method displays the label and destination for
    ''' each link in the input text.</remarks>
    Sub IdentifyLinks(ByVal htmlText As String)
        Dim hrefRegex As New Regex( 
            "<A[^>]*?HREF\s*=\s*""([^""]+)""[^>]*?>([\s\S]*?)<\/A>", 
            RegexOptions.IgnoreCase)
        Dim output As String = ""
        For Each m As Match In hrefRegex.Matches(htmlText)
            output &= "Link label: " & m.Groups(2).Value & vbCrLf
            output &= "Link destination: " & m.Groups(1).Value & vbCrLf
        Next
        MsgBox(output)
    End Sub

В этом примере необходимо использовать инструкцию Imports для импорта пространства имен System.Text.RegularExpressions. Дополнительные сведения см. в разделе Оператор Imports (пространство имен .NET и тип).

См. также

Основные понятия

Пример. Поиск ссылок HREF

Другие ресурсы

Анализ строк в Visual Basic