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
我想得到的是怎么控制哪个循环。 展开
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
我想得到的是怎么控制哪个循环。 展开
1个回答
展开全部
朋友,希望这个代码能帮你个忙,刚刚为你写的.
如果能帮上你,我会感到高兴的..呵呵 大家一起学习
'需要控件: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
如果能帮上你,我会感到高兴的..呵呵 大家一起学习
'需要控件: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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询