天天看點

mysql中regexp_substr_Oracle 正規表達式函數-REGEXP_SUBSTR 使用例子

5個參數

第一個是輸入的字元串

第二個是正規表達式

第三個是辨別從第幾個字元開始正規表達式比對。(預設為1)

第四個是辨別第幾個比對組。(預設為1)

第五個是是取值範圍:

i:大小寫不敏感;

c:大小寫敏感;

n:點号 . 不比對換行符号;

m:多行模式;

x:擴充模式,忽略正規表達式中的空白字元。

全部測試資料

SQL> select * from test_reg_substr;

A

-----------------------------------

ABC123XYZ

ABC123XYZ456

Edward

檢索中間的數字

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