複製鏈接
請複製以下鏈接發送給好友

instr函數

鎖定
instr函數為字符查找函數,其功能是查找一個字符串在另一個字符串中首次出現的位置。instr函數在Oracle/PLSQL中是返回要截取的字符串在源字符串中的位置。 [1-2] 
中文名
instr
外文名
instr
作    用
字符串查找
應    用
VB,VBS,Oracle
可選參數
start

目錄

instr函數Oracle

instr函數語法

instr( string1, string2, start_position,nth_appearance )

instr函數參數

● string1:源字符串,要在此字符串中查找。
●string2:要在string1中查找的字符串 。
●start_position:代表string1 的哪個位置開始查找。此參數可選,如果省略默認為1. 字符串索引從1開始。如果此參數為正,從左到右開始檢索,如果此參數為負,從右到左檢索,返回要查找的字符串在源字符串中的開始索引。
●nth_appearance:代表要查找第幾次出現的string2. 此參數可選,如果省略,默認為 1.如果為負數系統會報錯。 [2] 

instr函數注意

位置索引號從1開始。
instr函數 instr函數
如果String2在String1中沒有找到,instr函數返回0。 示例:
SELECT instr('syranmo','s') FROM dual; -- 返回 1
SELECT instr('syranmo','ra') FROM dual; -- 返回 3
SELECT instr('syran mo','at',1,2) FROM dual; -- 返回 0

instr函數示例

1 select instr('helloworld','l') from dual; --返回結果:3    默認第一次出現“l”的位置
2 select instr('helloworld','lo') from dual; --返回結果:4    即:在“lo”中,“l”開始出現的位置
3 select instr('helloworld','wo') from dual; --返回結果:6    即“w”開始出現的位置

instr函數VB和VBS

instr函數函數原型

InStr([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
0
執行一個二進制比較(即 英文字符區分大小寫)。
vbTextCompare
1
執行一個按照原文的比較(即 英文字符區分大小寫)。
vbDatabaseCompare
-2
僅適用於Microsoft Access,執行一個基於數據庫信息比較。

instr函數返回值

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

instr函數示例

本示例使用 InStr 函數來查找某字符串在另一個字符串中首次出現的位置。
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。
參考資料
  • 1.    賽奎春,李俊民.Visual Basic函數參考大全 :人民郵電出版社,2006.12
  • 2.    (美)麥克勞克林.Oracle Database 12c PL/SQL開發指南 第7版 :清華大學出版社,2015.8
  • 3.    韓延峯.即用即查ASP+VBSCRIPT函數與對象參考手冊 :人民郵電出版社,2007.7