|
回复 10# 的帖子
LS的方法很不错,思路也很好,但是函数如果要通用的话,却还是存在比较大的缺陷的~先看下LS的函数吧~- 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
- Str = "如何获取两个字符串之间的字符串?"
- StartStr ="获取"
- EndStr = "字符串"
- Res = getStrBetween(Str,StartStr,EndStr)
- Msgbox Res
复制代码 如果这个时候我目标字符串稍微改变下,让EndStr存在于StartStr之前,比如将Str改为
Str = "字符串操作之如何获取两个字符串之间的字符串"
其它部分不变,那么就会直接报错了~~
解决方案也很简单,只需要把
EndStrPos = Instr(Str,EndStr)
改为
EndStrPos = Instr(StartStr,Str,EndStr)
即可
当然,如果再全面一些,我们最好再考虑下StartStr或EndStr在目标Str中不存在的情况,尤其是EndStr,不存在的时候还是要给出相应的返回值的~~ |
|