所有测试数据 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