vb使用xmlhttp获取网页源码怎么用正则表达式过滤和提取标签内的连接?
发布网友
发布时间:2022-04-12 12:47
我来回答
共2个回答
热心网友
时间:2022-04-12 14:16
这个问题挺好解决,这里贴代码太多,加QQ 620941帮你 提取字符给你写个函数,不用正则
Function stxtRow(ByVal sStr As String, ByVal nRow As Long, Optional ByVal sP1 As String = vbCrLf, Optional ByVal sP2 As String = vbCrLf) As String
Dim x As Long '循环用
Dim nPoint1 As Long '保存第一个关键点
Dim nPoint2 As Long '保存第二个关键点
Dim tnRow As Long '保存默认情况时的 寻找位置号
Dim isDef As Boolean
If sP1 = sP2 Then isDef = True Else isDef = False
For x = 1 To nRow
nPoint1 = InStr(nPoint1 + 1, sStr, sP1)
nPoint2 = InStr(nPoint1 + Len(sP1), sStr, sP2)
'Debug.Print nPoint1, nPoint2
If isDef Then tnRow = nRow - 1 Else tnRow = nRow
If isDef And nPoint2 = 0 And sP2 = vbCrLf Then nPoint2 = Len(sStr) + Len(sP1)
If nPoint1 = 0 Or nPoint2 = 0 Then
If isDef Then
stxtRow = "": Exit Function
'stxtRow = "没有找到,文件共" & x & "行": Exit Function
Else
stxtRow = "": Exit Function
'stxtRow = "没有找到,文件共" & x - 1 & "行": Exit Function
End If
End If
If nRow = 1 And isDef And sP2 = vbCrLf Then '如果默认搜头一行
stxtRow = Mid(sStr, 1, nPoint1 - 1)
Exit Function
Else '其他情况
If x = tnRow Then
stxtRow = Mid(sStr, nPoint1 + Len(sP1), nPoint2 - nPoint1 - Len(sP1))
Exit Function
End If
End If
Next
End Function
比如字符串s="ksdjfkls我slkjfsd说sdfsdf" 你要提取我说中间的
stxtRow s,1,"我","说"
这是提取s中 我开头 说结尾的第一个字符串,代码写的乱但肯定能用追问你好,已经加你QQ了,你上面的写代码我保存着,对我初学者有帮助。
热心网友
时间:2022-04-12 15:34
http://hi.baidu.com/set2get/item/a1e37ec25366027ccfd4f8c8
加强版VB正则表达式(VBScript.RegExp)组件,兼容Perl正则语法
如正则不明白 请留下在线联系方式