请教大家,如果我要提取()内的“铜陵有色”并赋值给一个变量a,用VBS正则怎样实现?作者: gezhirong 时间: 2011-1-18 13:18
Function regtest(strng,patrn)
Set regex=new regexp
regex.pattern=patrn
regex.global=true
regex.ignorecase=true
set matches=regex.execute(strng)
For each match in matches
regtest=match
Next
End Function
str="1231231测试(铜陵有色)10日上涨5.01%"
pat="铜陵有色"
a= regtest(str,pat)
msgbox a作者: feiyunkai 时间: 2011-1-18 13:46 本帖最后由 feiyunkai 于 2011-1-18 13:50 编辑
'VBS取括号中内容
str="1231231测试(铜陵有色)10日上涨5.01%"
strget=mid(str,instr(str,"(")+1,InStrRev(str,")")-(instr(str,"(")+1))
msgbox strget作者: deadhunter 时间: 2011-1-18 16:06
谢谢作者: superliming 时间: 2011-1-19 15:03
牛作者: my_way 时间: 2011-1-19 15:25
按照你的需求,不用正则表达式也可以这样:
Dim str : str = "1231231测试(铜陵有色)10日上涨5.01%"
For i = 1 to Len(str)
If mid(str,i,len("铜陵有色")) = "铜陵有色" Then
a = mid(str,i,len("铜陵有色"))
Exit for
End If
If i = Len(str) Then
msgbox "铜陵有色 was not found!"
End If
Next作者: wugecat 时间: 2011-1-19 17:53
这样试试
Function RegExpTest1(patrn, strng)
Dim regEx, Match, Matches
Set regEx = New RegExp
regEx.Pattern = patrn
regEx.IgnoreCase = True
regEx.Global = True
Set Matches = regEx.Execute(strng)
set RegExpTest1 = Matches
End Function
Set a=RegExpTest1 ("[^1231231测试\(].*[^\)10日上涨5.01%]","1231231测试(铜陵有色)10日上涨5.01%")