一、取得网页源文件,二、正则表达式取得包含"csdn"的url,三、取得末尾是数字的url 四、取得邮件地址

2066 2004-01-16 07:41:12
一、取得网页源文件,已经完成,代码如下:
Dim httpReq As System.Net.HttpWebRequest
Dim httpResp As System.Net.HttpWebResponse
Dim strBuff As String
Dim httpURL As New System.Uri("http://www.yourUrl.com")
httpReq = CType(WebRequest.Create(httpURL), HttpWebRequest)
httpReq.Method = "GET"
httpResp = CType(httpReq.GetResponse(), HttpWebResponse)
Dim reader As StreamReader = _
New StreamReader(httpResp.GetResponseStream, System.Text.Encoding.GetEncoding("GB2312"))
Dim respHTML As String = reader.ReadToEnd()
MsgBox(respHTML)
用webBrowser也可轻易取得网页源文件,但要等网页下载完毕,还有许多图片,不可取。所以用httpWebRequest

二、如何用正则表达式取得url中包含"csdn"的url。
http://expert.csdn.net/Expert/PostNew.asp


http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?可以取得url
我要用正则表达式把包含字符csdn的url提取出来,而把其他地址过滤掉,如何做

三、如何用正则表达式取得url末尾是数字的url
http://expert.csdn.net/Expert/PostNew.asp?room=5205
末尾5是数字

四、如何用正则表达式取得源文件中的邮件地址



...全文
90 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
8620 2004-01-17
二、正解
Private Sub MenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem4.Click
Dim r As System.Text.RegularExpressions.Regex
Dim m As System.Text.RegularExpressions.MatchCollection
Dim respHtml As String = "http://www.netsh.net/subdomains/f_s_o.php?leibie=shangmao"
Dim strRegex As string= "http://([\w]+\.)+[\w]+(/[\w.?]+)+leibie[=]{1}[\w]+"
r = New System.Text.RegularExpressions.Regex(strRegex, System.Text.RegularExpressions.RegexOptions.IgnoreCase)
m = r.Matches(respHTML)
Dim i As Integer
For i = 0 To m.Count - 1
msgBox((m(i).Value)
Next i
End Sub

说明:http://([\w]+\.)+[\w]+(/[\w.?]+)+leibie[=]{1}[\w]+
http:// '以http://开头
([\w]+\.)+ '单词加.重复一次以上,对应www.netsh.
[\w]+    '单词得复一次以上,对应net
(/[\w.?]+)+ ' . 与除 \n 之外的任何字符匹配。如果已用 Singleline 选项做过修改,则句点字符将与任何字符匹配 “?”元字符规定其前导对象(.表示的任意字符)必须在目标对象中连续出现零次或一次 [\w.?]+ 单词或任意字符重复一次以上
(/[\w.?]+)+  ‘就是/和任意字符重复一次以上,对应/subdomains/f_s_o.php?
leibie[=]{1}  'leibie=出现一次,你可以把leibie换成csdn或其他你需要的字符
[\w]+      '单词出现一次以上

'“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次,“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次,而“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。
'\s:用于匹配单个空格符,包括tab键和换行符;\S:用于匹配除单个空格符之外的所有字符
  • 打赏
  • 举报
回复
rainstormmaster 2004-01-16
up
  • 打赏
  • 举报
回复
ksy 2004-01-16
'没有全部用正则表达式实现:
Sub DumpHrefs(ByVal inputString As String)
Dim r As Regex
Dim m As Match
r = New Regex(href\s*=\s*(?:"(?<1>[^"]*)"|(?<1>\S+)), _
RegexOptions.IgnoreCase Or RegexOptions.Compiled)
m = r.Match(inputString)
While m.Success
Dim strTemp As String = m.Groups(1).Value
If InStr(strTemp.ToUpper, "CSDN", CompareMethod.Text) > 0 Then
If IsNumeric(strTemp.Substring(strTemp.Length - 5)) Then
txtConsole.Text &= vbCrLf & m.Groups(1).Value
End If
End If
m = m.NextMatch()
End While
End Sub
  • 打赏
  • 举报
回复
相关推荐
发帖
VB
加入

1.6w+

社区成员

VB技术相关讨论,主要为经典vb,即VB6.0
申请成为版主
帖子事件
创建了帖子
2004-01-16 07:41
社区公告
暂无公告