天天看點

Oracle正規表達式REGEXP_SUBSTR用法

一、正規表達式比對規則。

在别人那裡看到一篇文章,這裡對比對規則記錄的可以說是非常詳細了

傳送門:正則比對規則傳送處

二、執行個體說明:Regexp_Substr()

    2.1:Regexp_Substr() 與Substr()的差別。

        兩者的本質都是截取,不過前者可以傳入截取參數,比如根據什麼來截取,以及擷取截取到的第幾組内容;

        後者隻能傳入截取開始位置,截取長度來擷取截取内容。

        相比來說,正則的功能強大的多,等于Substr+instr 雙函數的使用。

    2.2:Regexp_Substr()參數詳解

    Regexp_Substr(String,pattern,position,occurrence ,modifier )一共包含了五個參數:

        String:操作的字元串;

        pattern:正規表達式比對規則,比對到則傳回;

        position:開始比對的位置,預設當然是1;

        occurrence:辨別第幾個比對組,預設為1

        modifier:模式(‘i‘不區分大小寫進行檢索,‘c‘區分大小寫進行檢索。預設為‘c‘)

    2.3:舉例說明

Select level,
       'SEGMENT' || To_Number(Regexp_Substr('1,2,3,', '[0-9]+', 1, Level)) x
  From Dual
Connect By Level <= 3
           

執行結果:

Oracle正規表達式REGEXP_SUBSTR用法