正则表达式提取HTML下拉标签 - 经典ASP

时间:2013-07-09 14:19:22

标签: regex asp-classic

我正在使用以下经典ASP代码从其中一个网页中提取内容。

该网页有一个选择框,我想要做的只是在响应中显示选择框,所以不确定我应该在这里更改strPattern = "<select>(.*?)<\/select>"

我需要访问的HTML下拉代码

<select onchange="change_option('SELECT___MC-TRIMC350___56',this.options[this.selectedIndex].value)" name="SELECT___MC-TRIMC350___56" class=" PIN_1373378891415_hazClick">
<option value="634">1 GAL [$64.99]</option>
<option value="629" class=" PIN_1373378891415_hazClick">5 GAL PAIL [$144.99]</option>
<option value="637">54 GAL DRUM [$2,225.00]</option>
</select>

经典asp代码读取页面标题,我希望它更改,以便显示选择框

Dim strURL, objXMLHTTP, objXML, strContents
Dim objRegExp, strHTML, strPattern, colMatches, strTitle

strURL= "http://abc.com/testhtm" 


Set objXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP") 
'Or if this doesn't work then try :
'Set objXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")

objXMLHTTP.Open "GET", strURL, False

objXMLHTTP.Send

strContents = objXMLHTTP.ResponseText

Set objXMLHTTP = Nothing

Set objRegExp = New RegExp

strPattern = "<select>(.*?)<\/select>"

objRegExp.Pattern = strPattern
objRegExp.IgnoreCase = True
objRegExp.Global = True

Set colMatches = objRegExp.Execute(strContents)

If colMatches.Count > 0 then
    strTitle = objMatches(0).Value
Else
    strTitle = ""
End If

Set objRegExp = Nothing

Response.write(strTitle)

1 个答案:

答案 0 :(得分:2)

<select.*>[\w\W]*<\/select>

我不确定.是否在Classic ASP中捕获换行符,因此我选择了\w\W。您需要.*<select之间的>来跳过html属性(onchange等)。

更新: 您的代码中有错误。您从未设置或声明objMatches。您应该使用colMatches代替。

If colMatches.Count > 0 Then
    strTitle = colMatches(0).Value
Else
    strTitle = ""
End If