所有測試數據 SQL> select * from test_reg_substr; A ----------------------------------- ABC123XYZ ABC123XYZ456 <Name>Edward</Name>
檢索中間的數字 SQL> SELECT 2 REGEXP_SUBSTR(a,'[0-9]+') 3 FROM 4 test_reg_substr 5 WHERE 6 REGEXP_LIKE(a, '[0-9]+'); REGEXP_SUBSTR(A,'[0-9]+') --------------------------------- 123 123
檢索中間的數字(從第一個字母開始匹配,找第2個匹配項目) SQL> SELECT 2 NVL(REGEXP_SUBSTR(a,'[0-9]+',1, 2), '-') AS a 3 FROM 4 test_reg_substr 5 WHERE 6 REGEXP_LIKE(a, '[0-9]+'); A ------------------------------------------------------ - 456
取得「字符集合」 SQL> SELECT 2 REGEXP_SUBSTR(a, '\w+') 3 FROM 4 test_reg_substr 5 WHERE 6 REGEXP_LIKE(a, '\w+'); REGEXP_SUBSTR(A,'\W+') ------------------------------- ABC123XYZ ABC123XYZ456 Name
取得「字符集合」(從第一個字母開始匹配,找第2個匹配項目) SQL> SELECT 2 NVL(REGEXP_SUBSTR(a, '\w+',1, 2), '-') AS a 3 FROM 4 test_reg_substr 5 WHERE 6 REGEXP_LIKE(a, '\w+'); A --------------------------------------------------- - - Edward