VBscript and InStr function
我正在尝试检索"彭赞斯少校歌曲海盗"中字符串"少校"之前和之后的5个字符(位于:http://www.naic.edu /~gibson/poems/gilbert1.html)。我正在尝试找到一种比我现有的方法更好的方法,并且试图弄清为什么它没有循环。任何想法将不胜感激!
1 2 3 4 5 6 7 8 9 10 11 12 13 | l1 =INSTR(l2, string,"Major-General") l2 = 5 l3 = 1 vcount=0 if vcount <5 then l1 =INSTR(l3, string,"Major-General") vcount = vcount +1 word = mid(string, l1-5, l2 ) word1 = mid(string, l1+13, l2) l3 = l3+l1 response.write"" &"5 before:" & word &"" &"5 after:" & word1 end if |
这样做可能会更容易:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Dim Poem,aStr,i,block,Left5,Right5 Poem ="The abc poem is abc in this abc string." aStr = Split(Poem,"abc") If uBound(aStr) = 0 Then Response.Write"String not found": Response.End For i = 0 to uBound(aStr) block = Trim(aStr(i)) Left5 ="": Right5 ="" if cStr(i) <> cStr(uBound(aStr)) then Left5 = Right(block,5) If cStr(i) <> cStr(0) then Right5 = Left(block,5) Response.Write"The 5 characters to the left of abc:" & Left5 Response.Write"The 5 characters to the right of abc:" & Right5 Next |
每次字符串存在时,它将在字符串的左侧和右侧获得5个字符。
在这种情况下,它将在