vb中的查询字符串

PrivateSubCommand1_Click()content=Text2.textRegExpTest"(\<div(.[^\<]*)?()\>)",content... Private Sub Command1_Click()
content = Text2.text
RegExpTest "(\<div(.[^\<]*)?()\>)", content

end sub
Function RegExpTest(patrn, content)

Set regex = CreateObject("VBScript.RegExp") ' &&建立正则表达式对象
regex.Pattern = patrn ' &&设置模式
regex.IgnoreCase = True ' &&设置是否区分字符大小写
regex.Global = True ' &&设置全局可用性
Set matches = regex.Execute(content) '&&执行搜索

retstr = ""
For Each match In matches ' &&遍历匹配集合
retstr = retstr + "找到位置: " + LTrim(Str(match.FirstIndex)) & vbCrLf
retstr = retstr + "长度为 " + LTrim(Str(match.Length)) & vbCrLf
retstr = retstr + "找到结果为 " + match.Value + Chr(10) + Chr(13) & vbCrLf

Text2.SelStart = match.FirstIndex
Text2.SelLength = match.Length

Next
'retstr = retstr + "共找到" + LTrim(Str(matches.Count)) + "结果" & vbCrLf
'MsgBox retstr
End Function
这段代码我想实现查找text2.text中有没有符合正则表达式的字符串,如果有的话选种那段文字。
因为text2.text中有很多个满足正则表达式的字符串,当运行后程序不能暂停,点击Command1后选种的就是text2.text中最后一个符合正则表达式的字符串,那位知道有什么办法能象word中查找一样,查找到第一项符合条件的以后,再次点击查找下一个啊。
高手帮忙,,
谢了。这个功能可以这么实现更简便一些。
Private Sub Command1_Click()
cznumber = Len(text.text)
content = Text2.text
If text.text = "" Then
MsgBox "查找框不能为空! "
Else
Text2.SetFocus '文本框获得焦点
start = Text2.SelStart + Text2.SelLength + 1 '文本框焦点的位置
If text.text <> "<div></div>" Then
s = InStr(start, content, text.text) '查找
If s = False Then
MsgBox "查找完毕! ", vbInformation, "提示"
Else
x = Text2.SelStart
Text2.SelStart = s - 1
Text2.SelLength = cznumber
End If
End If
End If
我想得到的是怎么控制哪个循环。
展开
 我来答
saogegood
2008-06-26 · TA获得超过501个赞
知道小有建树答主
回答量:208
采纳率:0%
帮助的人:270万
展开全部
朋友,希望这个代码能帮你个忙,刚刚为你写的.
如果能帮上你,我会感到高兴的..呵呵 大家一起学习

'需要控件:command1,text1,text2

Private Sub Command1_Click()
Static LngStartTxtOld As Long
Dim LngStartTxtNew As Long

If Command1.Caption = "查找" Then
LngStartTxtOld = InStr(1, Text1.Text, Text2.Text)
LngStartTxtNew = LngStartTxtOld
Else
LngStartTxtNew = InStr(LngStartTxtOld + 1, Text1.Text, Text2.Text)
LngStartTxtOld = LngStartTxtNew
End If

If LngStartTxtNew > 0 Then
Text1.SelStart = LngStartTxtNew - 1
Text1.SelLength = Len(Text2.Text)
Text1.SetFocus
If Command1.Caption <> "下一个" Then Command1.Caption = "下一个"
Else
MsgBox "已经查找完毕", vbInformation
Command1.Caption = "查找"
End If

End Sub

Private Sub Form_Load()
Text1 = "11111111111654654119687685463511222221122112222221"
Text2 = "11"
Command1.Caption = "查找"
End Sub
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式