vb擷取任意兩個特徵字元之間的字元

2021-07-10 03:11:17 字數 3731 閱讀 4934

vb擷取字串

(1)左部擷取left$(字串,n):n是要擷取的字元個數

(2)中部擷取mid$(字串,p,n):表示從第p個字元開始擷取n個字元

(3)右部擷取right$(字串,n):表示擷取字串的後n個字元 如:

left$("abcdefg",3)的結果是:"abc"

mid$("abcdefg",2,3)的結果是:"bcd"

right$("abcdefg",3)的結果是:"efg"

dim strsrc as string

dim strresult as string

strresult = right(strsrc, len(strsrc) - instr(1, strsrc, "/")) 二、

vb擷取任意兩個特徵字元之間的字串

111111+22222+33333333+44444+55555+66666…

如何得到任意兩個符號」+」之間的字串,譬如22222

以下為**全過程,函式為增強版,支援任意字元,只需要在呼叫的時候修改引數就ok了,**注釋中已經有描述:

新建工程在窗體上放置兩個textbox控制項和乙個command控制項,名稱不需要修改預設就ok,分別名為:text1.text text2.text 和 command1

然後複製以下**:

private sub command1_click()  

text2.text = getchar(trim(text1.text), "+", 1, 3)  

end sub  

'函式使用方法: getchar(mstr:原始字元,charx:規律字元,比如擷取兩段加號之間的那麼就輸入"+",  

'bofnum: 起始字元位, eofnum: 終點字元位)  

private function getchar(mstr as string, charx as string, bofnum as integer, eofnum as integer) as string  

dim i as integer  

'迴圈  

dim x as integer  

'記錄第幾個"+"符號  

dim startnum as integer  

'mid函式擷取開始位數  

dim endnum as integer  

'mid函式擷取結束位數  

for i = 1 to len(mstr)  

if x = eofnum then exit for  

'得到擷取開始和結束位數則退出  

if mid(mstr, i, 1) = charx then  

x = x + 1  

if x = bofnum then  

'第乙個為開始位置  

startnum = i  

elseif x = eofnum then  

'第二為結束位置  

endnum = i  

end if  

end if  

next i  

'qnames2 = finddoc.mtnames

dim sarray() as string

'dim i as integer  

'迴圈  

dim icount as integer  

'記錄第幾個"+"符號  

icount = 1

'for i = 1 to len(qnames) 

' sarray(i-1)= mid(qnames, icount, 1)

' icount =icount + 2

' msgbox sarray(i-1)

'next

'開始位置第乙個是符號 需要移動一位  

結束位置-開始位置=擷取長度  

'擷取出來的兩邊各有符號 所以需要取捨  

getchar = mid(mstr, startnum + 1, endnum - startnum - 1) '賦值  

end function  

三、mid()函式法 

aa="abcda123456bdff"

asite = instr(aa,"a")

bsite = instrrev(aa,"b")

response.write(mid(aa,asite+1,bsite-asite-1))

-----------------------------------------

function cutstr(byval str1 as string,byval startstr as string,byval endstr as string) as string

dim i as integer,j as integer,l1 as integer,l2 as integer

l1=len(startstr)

l2=len(endstr)

i=instr(str,startstr)

j=instr(str,endstr)

if (l1*l2=0) or (i*j=0) or (j-i<1) then '如果指定起始字串與結束字串有乙個為空,或者有乙個不存在,或者前後位置不正確,返回源字串

cutstr=str1

exit function

else

cutstr=mid(str1,i+l1,j-l1-i)

end if

end function

dim str as string ,s1 as string ,s2 as string,s3 as string 

str="[name]asdadasdsa[year]123456789[number]123456"

s1="[name]"

s2="[year]"

s3="[number]"

msgbox cutstr(str,s1,s2)

msgbox cutstr(str,s2,s3) 

---------------------------------------

dim str

wstr=[name]asdadasdsa[year]123456789[number]123456

str=mid(wstr,instr(wstr,"[name]"),instrrev(wstr, "[year]") - instr(wstr, "[name]"))

str1=mid(wstr,instr(wstr,"[year]"),instrrev(wstr, "[number]") - instr(wstr, "[year]")) 

-------------------------------------

private sub form_click()

s = "[name]asdadasdsa[year]123456789[number]123456"

a = split(s, "]")

for i = 1 to ubound(a)

print split(a(i), "[")(0)

next

end sub 

-----------

4.更高階的方法,使用正規表示式處理,正規表示式稍微複雜一些,有基礎的朋友可以使用。

正規表示式語法參考:

php 擷取兩個指定字元之間的字串

str 要擷取的字串 start str 指定開始的字串 end str 指定結束的字串 start strpos str start str end strripos str end str res substr str start mb strlen start str end start mb...

php計算任意兩個日期之間的天數

php計算任意兩個日期之間的天數 基本思想,算術減法 cur date 2009 04 11 last date 2008 12 20 date dist 0000 03 21 間隔大約3個月21天 116天 create function function date distance last d...

C 計算任意兩個日期之間的天數

c 寫的乙個計算兩個日期之間天數的小程式 cpp view plain copy include include struct tagdate 設定日期 void setdate int y,int m,int d,tagdate date 是否閏年 int isleapyear int year ...