Regexp Meta Описание - PullRequest
       46

Regexp Meta Описание

0 голосов
/ 02 мая 2018

Когда я использую это регулярное выражение на https://regex101.com (<meta[^>]*description[^>]([^<]+)>) его запуск.

Match 1
Full match  265-314 `<meta name="description" content="Stackoverflow">`
Group 1.    265-314 `<meta name="description" content="Stackoverflow">`
Group 2.    289-313 ` content="Stackoverflow"

но когда я использую это на своей странице, он не запускается.

Function GetFirstMatch(PatternToMatch, StringToSearch)
    Set regEx = New RegExp
    regEx.Pattern = PatternToMatch
    regEx.IgnoreCase = True
    regEx.Global = True
    regEx.MultiLine = True
    Set CurrentMatches = regEx.Execute(StringToSearch)

    GetFirstMatch = ""
    If CurrentMatches.Count >= 1 Then
        Set CurrentMatch = CurrentMatches(0)
        If CurrentMatch.SubMatches.Count >= 1 Then
            GetFirstMatch = CurrentMatch.SubMatches(0)
        End If
    End If
    Set regEx = Nothing
End Function

GetFirstMatch("(<meta[^>]*description[^>]([^<]+)>)",sdatai)

спасибо

1 Ответ

0 голосов
/ 02 мая 2018

Это потому, что у вас есть слово "описание" внутри контента. Это заставляет первую часть регулярного выражения (<meta[^>]*description) пропускать все до последнего появления «описания». Вот регулярное выражение, которое должно это исправить:

(<meta[\s]+name="description"[^>]([^>]+)>)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...