回 帖 发 新 帖 刷新版面

主题:正则表达式的问题

下面这个字段:

<td colspan="3" class="font_red"><strong>05月16日20时至05月17日20时</strong></td>

我想要通过正则表达式把中间的日期部分取出来
现在的代码:

Dim regEx,Match,Matches            
Set regEx = New RegExp    
regEx.Pattern = "<td colspan=""3"" class=""font_red""><strong>([^<]+)"        
regEx.IgnoreCase = True    
regEx.Global = True        
Set Matches = regEx.Execute(html)    
For Each Match in Matches 
riqi=Match.Value   
Next
set regEx = nothing


但是执行后,
riqi="<td colspan="3" class="font_red"><strong>05月16日20时至05月17日20时"

前面不是我想要的,我想问一下怎么才能只留下日期呢?

回复列表 (共4个回复)

沙发

去掉里面的html代码不就可以了
http://www.programfan.com/blog/article.asp?id=19884

板凳

已经解决了,用Match.SubMatches(0),很多网上的正则表达式教程都没有这个东西,有没有人知道括号里面的0代表什么,为什么不能去掉?
还有就是我用response.write(matches.count)结果显示 60 \05
这个是什么意思??60代表什么,05代表什么???

3 楼

SubMatches(0)代表集合中第一个方括号的位置,也就是“[^<]”。
集合的计数是从0开始。

4 楼

SubMatches代表正则表达式里所有()里面的内容,有几组(),SubMatches数组就有几个值,括号的顺序以“(”的出现顺序为准。
现在已经弄清楚了,谢谢。

我来回复

您尚未登录,请登录后再回复。点此登录或注册