instr函數

編程語言

instr函數為字元查找函數,其功能是查找一個字元串在另一個字元串中首次出現的位置。instr函數在Oracle/PLSQL中是返回要截取的字元串在源字元串中的位置。

Oracle


語法如下:
instr(string1,string2,start_position,nth_appearance)
string1源字元串,要在此字元串中查找。
string2要在string1中查找的字元串。
start_position代表string1的哪個位置開始查找。此參數可選,如果省略默認為1.字元串索引從1開始。如果此參數為正,從左到右開始檢索,如果此參數為負,從右到左檢索,返回要查找的字元串在源字元串中的開始索引。
nth_appearance代表要查找第幾次出現的string2.此參數可選,如果省略,默認為1.如果為負數系統會報錯。
注意:
位置索引號從1開始。
如果String2在String1中沒有找到,instr函數返回0。
示例:
SELECT instr('syranmo','s')FROM dual;--返回1
SELECT instr('syranmo','ra')FROM dual;--返回3
SELECT instr('syran mo','a',1,2)FROM dual;--返回0
示例
11 select instr('helloworld','l') from dual; --返回結果:3 默認第一次出現“l”的位置
22 select instr('helloworld','lo') from dual; --返回結果:4 即:在“lo”中,“l”開始出現的位置
33 select instr('helloworld','wo') from dual; --返回結果:6 即“w”開始出現的位置

VB和VBS


函數原型
1InStr([start,]string1,string2[,compare])
表達式:
InStr([起始,]接受搜索的字元串,被搜索的字元串[,匹配模式])
instr函數
instr函數

參數

start可選參數。為數值表達式,設置每次搜索的起點。如果省略,將從第一個字元的位置開始。如果start包含Null,將發生錯誤。如果指定了compare參數,則一定要有start參數。
string1必要參數。接受搜索的字元串表達式。
string2必要參數。被搜索的字元串表達式。
compare可選參數。指定字元串比較。如果compare是Null,將發生錯誤。如果省略compare,Option Compare 的設置將決定比較的類型。
Compare參數設置為:
常數描述
vbUseCompareOption-1使用 Option Compare 語句設置執行一個比較。
vbBinaryCompare執行一個二進位比較。
vbTextCompare1執行一個按照原文的比較。
vbDatabaseCompare-2僅適用於Microsoft Access,執行一個基於資料庫信息比較。

返回值

從Start位置開始,在String1中尋找String2,如果沒有找到,則返回0。如果String1或String2為Null,則返回Null,其他情況返回String2在String1中的起始位置。

示例

本示例使用InStr函數來查找某字元串在另一個字元串中首次出現的位置。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
DimSearchString,SearchChar,MyPos
SearchString="XXpXXpXXPXXP"'被搜索的字元串。
SearchChar="P"'要查找字元串"P"。
'-------------------------------------
'從第四個字元開始,以文本比較的方式找起。返回值為6(小寫p)。
'小寫p和大寫P在文本比較下是一樣的。
MyPos=Instr(4,SearchString,SearchChar,1)
'--------------------------------------
'從第一個字元開始,以二進位比較的方式找起。返回值為9(大寫P)。
'小寫p和大寫P在二進位比較下是不一樣的。
MyPos=Instr(1,SearchString,SearchChar,0)
'--------------------------------------
'預設的比對方式為二進位比較(最後一個參數可省略)。
MyPos=Instr(SearchString,SearchChar)'返回9。
MyPos=Instr(1,SearchString,"W")'返回0。