请教正则,如何提取字符串中的内容
1231231测试(铜陵有色)10日上涨5.01%请教大家,如果我要提取()内的“铜陵有色”并赋值给一个变量a,用VBS正则怎样实现? 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:50 编辑
'VBS取括号中内容
str="1231231测试(铜陵有色)10日上涨5.01%"
strget=mid(str,instr(str,"(")+1,InStrRev(str,")")-(instr(str,"(")+1))
msgbox strget 谢谢 牛 按照你的需求,不用正则表达式也可以这样:
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 这样试试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%")
'msgbox a.count
For i=0 to a.count-1
msgbox a(i).value
Next 'VBS取括号中内容
str="1231231测试(铜陵有色)10日上涨5.01%"
strget=mid(str,instr(str,"(")+1,InStrRev ...
feiyunkai 发表于 2011-1-18 13:46 http://bbs.51testing.com/images/common/back.gif
这个是最方便的方法。
页:
[1]