天天看點

關于Oracle REGEXP_COUNT函數用法總結

REGEXP_COUNT 統計字元出現的次數函數,Oracle11g後引入了此函數。

  1. 文法

REGEXP_COUNT (source_char, pattern [, position [, match_param]])

示例,使用LENGTH( )組合REGEXP_COUNT函數實作統計字元'#'出現的次數:
           

SELECT REGEXP_COUNT('00000000,11000000,11011200,#1101127200,1101127201,1101127202,#1101127203','#') COUNT FROM DUAL;

SELECT LENGTH(REGEXP_REPLACE('00000000,11000000,11011200,#1101127200,1101127201,1101127202,#1101127203','

1

+')) COUNT FROM DUAL;

  1. 大小寫字元統計

    REGEXP_COUNT預設區分大小寫統計,等同于全參形式:

SELECT REGEXP_COUNT('00000000,11000000,11011200,#A1101127200,1101127201,1101127202,#1101127203','a',1,'c') COUNT FROM DUAL;

區分大小寫敏感統計,啟用'i'參數即可:           

SELECT REGEXP_COUNT('00000000,11000000,11011200,#A1101127200,1101127201,1101127202,#1101127203','a',1,'i') COUNT FROM DUAL;

  1. 從指定位置查找

    REGEXP_COUNT倒數第二個參數表示開始檢索關鍵字的位置,如下:

SELECT REGEXP_COUNT('00000000,11000000,11011200,#A1101127200,1101127201,1101127202,#1101127203','a',30,'i') COUNT FROM DUAL;

REGEXP_REPLACE函數

另一種方式,可通過REGEXP_REPLACE函數比對正規表達式實作,如下統計字元'#'出現的次數:

  1. #