ASP用正则表达式如何取出HTML网页中TABLE中每一个单元格里的文字?
从别的网站中抓取到的天气预报表格,HTML代码如下:<table><trstyle="color:Black;background-color:Gainsboro;bor...
从别的网站中抓取到的天气预报表格,HTML代码如下:
<table>
<tr style="color:Black;background-color:Gainsboro;border-color:Black;border-width:10px;border-style:Inset;">
<td>14日星期三</td>
<td>白天</td>
<td align="right"><img src="/m2/i/icon_weather/29x20/d01.gif" /></td>
<td>多云</td>
<td>高温 18℃</td>
<td>东风</td>
<td>3-4级</td><td>中国气象网2012-03-14 08:00发布</td>
</tr>
<tr style="color:Black;background-color:Gainsboro;border-color:Black;border-width:10px;border-style:Inset;">
<td>14日星期三</td>
<td>夜间</td>
<td align="right"><img src="/m2/i/icon_weather/29x20/n07.gif" /></td>
<td>小雨</td>
<td>低温 8℃</td>
<td>东风</td>
<td>3-4级</td><td>中国气象网2012-03-14 08:00发布</td>
</tr>
</table>
我现在想得到A1=14日星期三&A2=白天&A3=多云&A4=高温&A5=东风&A6=3-4级&A7=中国气象网2012-03-14 08:00发布&A8=14日星期三&A9=夜间&A10=小雨&A11=低温&A12=东风&A13=3-4级&A14=中国气象网2012-03-14 08:00发布
这样的数据,听说可以用正则表达式搞定,但是实在是看不懂教程,只有求助大家了! 展开
<table>
<tr style="color:Black;background-color:Gainsboro;border-color:Black;border-width:10px;border-style:Inset;">
<td>14日星期三</td>
<td>白天</td>
<td align="right"><img src="/m2/i/icon_weather/29x20/d01.gif" /></td>
<td>多云</td>
<td>高温 18℃</td>
<td>东风</td>
<td>3-4级</td><td>中国气象网2012-03-14 08:00发布</td>
</tr>
<tr style="color:Black;background-color:Gainsboro;border-color:Black;border-width:10px;border-style:Inset;">
<td>14日星期三</td>
<td>夜间</td>
<td align="right"><img src="/m2/i/icon_weather/29x20/n07.gif" /></td>
<td>小雨</td>
<td>低温 8℃</td>
<td>东风</td>
<td>3-4级</td><td>中国气象网2012-03-14 08:00发布</td>
</tr>
</table>
我现在想得到A1=14日星期三&A2=白天&A3=多云&A4=高温&A5=东风&A6=3-4级&A7=中国气象网2012-03-14 08:00发布&A8=14日星期三&A9=夜间&A10=小雨&A11=低温&A12=东风&A13=3-4级&A14=中国气象网2012-03-14 08:00发布
这样的数据,听说可以用正则表达式搞定,但是实在是看不懂教程,只有求助大家了! 展开
2个回答
展开全部
我用javascript熟,懒得翻译成vbscript了。一样可以用:
把下面代码,复制到你的asp页面中。注意runat=server,如果没有这个会被当作业务脚本来执行。不论你用vbs或js写asp,都可以通过 getWeatherStr函数获得到你想要的字符串。参数str就是你上面写的那个table的html代码。
<script language="javascript" runat=”server“>
function getWeatherStr(str)
{
var reg=/<td>([\w\W]+?)<\/td>/gi;
var a=str.match(reg);
var result="";
for(var i=0;i<a.length;i++)
{
result+="A"+(1+i)+"="+a[i].replace(reg,"$1")+"&";
}
result=result.substring(0,result.length-1);
return result;
}
</script>
把下面代码,复制到你的asp页面中。注意runat=server,如果没有这个会被当作业务脚本来执行。不论你用vbs或js写asp,都可以通过 getWeatherStr函数获得到你想要的字符串。参数str就是你上面写的那个table的html代码。
<script language="javascript" runat=”server“>
function getWeatherStr(str)
{
var reg=/<td>([\w\W]+?)<\/td>/gi;
var a=str.match(reg);
var result="";
for(var i=0;i<a.length;i++)
{
result+="A"+(1+i)+"="+a[i].replace(reg,"$1")+"&";
}
result=result.substring(0,result.length-1);
return result;
}
</script>
展开全部
<%
Dim tHTML, re, Matches, Match, s, i
tHTML = "<table>.....</table>" '把表格读到这个变量里
Set re = New RegExp
re.Global = True
re.IgnoreCase = True
re.MultiLine = True
re.Pattern = "<td[^>]*>([^<]+)</td>"
Set Matches = re.Execute(tHTML)
i = 1
For Each Match In Matches
s = s & "A" & i & "=" & Match.SubMatches(0) & "&"
i = i + 1
Next
If Len(s) > 0 Then s = Left(s, Len(s)-1)
Response.Write s
%>
Dim tHTML, re, Matches, Match, s, i
tHTML = "<table>.....</table>" '把表格读到这个变量里
Set re = New RegExp
re.Global = True
re.IgnoreCase = True
re.MultiLine = True
re.Pattern = "<td[^>]*>([^<]+)</td>"
Set Matches = re.Execute(tHTML)
i = 1
For Each Match In Matches
s = s & "A" & i & "=" & Match.SubMatches(0) & "&"
i = i + 1
Next
If Len(s) > 0 Then s = Left(s, Len(s)-1)
Response.Write s
%>
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询