VBScript регулярное выражение получить URL-адрес IMG SRC - PullRequest
0 голосов
/ 13 июля 2011

То, что я пытаюсь сделать, это получить URL-адрес IMG SRC из stringXML ниже.(т.е. http://www.webserver.com/picture.jpg)

Это то, что у меня есть, но оно дает мне только истину / ложь:

<%
stringXML="<a href="http://www.webserver.com/"><img src="http://www.webserver.com/picture.jpg"/></a><br>Some text here, blah blah blah."

Dim objRegex
    Set objRegex = New Regexp
        With objRegEx
            .IgnoreCase = True
            .Global = True  
            .Multiline = True
    End with  

strRegexPattern = "\<img\s[^\>]*?src=[""'][^\>]*?(jpg|bmp|gif)[""']"


objRegEx.Pattern = strRegexPattern

        response.write objRegEx.Test(stringXML)

If objRegEx.Test(stringXML) = True Then
    'The string has a tags.

    'Match all A Tags
    Set objRegExMatch = objRegEx.Execute(stringXML)

    If objRegExMatch.Count > 0 Then
        Redim arrAnchor(objRegExMatch.Count - 1)
        For Each objRegExMatchItem In objRegExMatch
          response.write objRegExMatchItem.Value
        Next
    End If
End If
%>

Я в основном хочу получить ТОЛЬКО значение IMG SRC ..

Есть идеи, почему эта строка не работает 'response.write objRegExMatchItem.Value'?

Ура, Дрю

1 Ответ

2 голосов
/ 13 июля 2011

Попробуйте:

Function getImgTagURL(HTMLstring)
    Set RegEx = New RegExp
    With RegEx
        .Pattern = "src=[\""\']([^\""\']+)"
        .IgnoreCase = True
        .Global = True
    End With

    Set Matches = RegEx.Execute(HTMLstring)
    'Iterate through the Matches collection.
    URL = ""
    For Each Match in Matches
        'We only want the first match.
        URL = Match.Value
        Exit For
    Next
    'Clean up
    Set Match = Nothing
    Set RegEx = Nothing
    ' src=" is hanging on the front, so we will replace it with nothing
    getImgTagURL = Replace(URL, "src=""", "")
End Function
...