1. 程式人生 > >07_oracle正則表示式語法

07_oracle正則表示式語法

oracle正則表示式中常用到的元資料如下: ^ 匹配字串的開頭位置。 $ 匹配支付傳的結尾位置。

  • 匹配該字元前面的一個字元0次,1次或者多次出現。 +匹配該字元前面的一個字元1次或者多次出現。 ? 匹配該字元前面的一個字元0次或1次或者多次出現。 {n}匹配一個字串n次,n為正整數。例如:hel{2}o所匹配的是hello {n,m}匹配一個字串至少n次,至多m次。其中n和m都是整數。 . 匹配除了null之外的任何單個字串 (pattern)這個是用來匹配指定模式的一個子表示式 x|y 匹配x或者y,其中x和y是一個或者多個字元 [abc]匹配括號中的任意一個字元。例如:[ab]bc可以匹配abc和bbc [a-z]匹配指定範圍內的任意字串。例如[A-G]hi可以匹配Ahi至Ghi

[::]指定一個字元類,可以匹配該類中的任意字元 這裡的字元類包括: [:alphanum:]可以匹配字元0-9、A-Z、a-z [:alpha:]可以匹配字元A-Z、a-z [:blank:]可以匹配空格或者tab鍵 [:digit:]可以匹配數字0-9 [:gragh:]可以匹配非空字元 [:punct:]可以匹配. , ” ‘等標點符號。 [:upper:]可以匹配字元A-Z [:lower:]可以匹配字元a-z

執行函式為: regexp_substr(srcstr,pattern[,start[,occurence[match_option]]]) srcstr待匹配的函式 pattern正則表示式元字元構成的匹配模式 start 開始匹配的位置,如果不指定預設為1 occurrence 匹配的次數,如果不指定,預設為1 match_option 匹配引數,‘c’區分大小寫(預設選項),‘i’ 不區分大小寫

select regexp_substr(‘LC0021’,’^LC[0-9]{4}’ ) value from dual; select regexp_substr(‘OD0001’,’^LC[0-9]{4}’ ) value from dual; select regexp_substr(‘Y’,’(N|Y)’ ) value from dual;