VB中有没有什么函数可以取到一串字符串中间的某几个字?
比如说字符串是“中华人民共和国”我想取得“人民”两字,而这两个字是不断在变的,“中华”和“共和国”是不变的。 Function getStrBetween(Str,StartStr,EndStr)
StartStrPos = Instr(Str, StartStr)+Len(StartStr)
EndStrPos = Instr(Str,EndStr)
Length = EndStrPos- StartStrPos
Res= Mid(Str,StartStrPos,Length)
getStrBetween = Res
End Function 学习了! 学习了 非常感谢版主,我知道了~~ 原帖由 zte_boy 于 2008-8-19 09:51 发表 http://bbs.51testing.com/images/common/back.gif
Function getStrBetween(Str,StartStr,EndStr)
StartStrPos = Instr(Str, StartStr)+Len(StartStr)
EndStrPos = Instr(Str,EndStr)
Length = EndStrPos- StartStrPos
Res ...
以前我就说过这个函数有bug的,并改过其中一句,但貌似没人注意嘛。。。
版主来执行下这句看看
getStrBetween("红警-共和国之辉是中华人民共和国的游戏达人修改的","中华","共和国") 从字符串中返回指定数目的字符。
语法
Mid(string, start[, length])
Mid 函数的语法有以下参数:
参数 描述
string 字符串表达式,从中返回字符。如果 string 包含 Null,则返回 Null。
start string 中被提取的字符部分的开始位置。如果 start 超过了 string 中字符的数目,Mid 将返回零长度字符串 ("")。
length 要返回的字符数。如果省略或 length 超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到字符串结束的所有字符。
说明
要判断 string 中字符的数目,可使用 Len 函数。
下面的示例利用 Mid 函数返回字符串中从第四个字符开始的六个字符:
Dim MyVar
MyVar = Mid("VB脚本is fun!", 4, 6) 'MyVar 包含 "Script"。
我查的...帮助文件..呵 原帖由 hsjzfling 于 2008-8-19 11:34 发表 http://bbs.51testing.com/images/common/back.gif
以前我就说过这个函数有bug的,并改过其中一句,但貌似没人注意嘛。。。
版主来执行下这句看看
getStrBetween("红警-共和国之辉是中华人民共和国的游戏达人修改的","中华","共和国")
确实,呵呵,需要修改下 Function getStrBetween(Str,StartStr,EndStr)
StartStrPos = Instr(Str, StartStr)+Len(StartStr)
EndStrPos = Instr(StartStrPos,Str,EndStr)
Length = EndStrPos- StartStrPos
Res= Mid(Str,StartStrPos,Length)
getStrBetween = Res
End Function
这个函数解决你你那个问题,但是当“中华”前还有“中华”时,会从第一个串开始计算
要解决也可以,只是不想搞的那么麻烦了,呵呵 典型的使用正则表达式的例子
例如,经常遇到的获取<font></font>中间的字符串
首先要写一个不支持嵌套的正则表达式
在这里是:"中华([^中华|共和国]*)共和国"
Function getStrBetween(patrn, strng)
Dim regEx, Matches
Set regEx = New RegExp
regEx.Pattern = patrn
regEx.IgnoreCase = True '为真则忽略大小写,否则严格匹配大小写
regEx.Global = True'搜索应用于整个字符串
Set Matches = regEx.Execute(strng)
For each Match in Matches
MsgBox Match.SubMatches(0)
Next
End Function
Call getStrBetween("中华([^中华|共和国]*)共和国","红警-共和国之辉是中华中华人民共和国的中华游戏共和国游戏达人修改的")
Function写得比较简单,只是把结果MsgBox出来了
具体怎么处理,要看你自己的了 居然说我的回复需要审核:L
同意同意
Mid函数very good!!! 两天没上来,看到这么多高手在讨论这个问题,学习了:) 学习了~~ yes,Mid()
页:
[1]