參考原文:12.5.2 Regular Expressions
功能和操作
名稱 |
描述 |
NOT REGEXP |
REGEXP的反義詞 |
REGEXP |
字符串是否匹配正則表達式, 這三個關鍵詞是同一個意思 |
REGEXP_LIKE() |
字符串是否匹配正則表達式 |
RLIKE |
字符串是否匹配正則表達式 |
REGEXP_INSTR() |
符合正則的子字符串的初始位置 |
REGEXP_REPLACE() |
替換匹配正則的字符串 |
REGEXP_SUBSTR() |
返回匹配正則的字符串 |
正則表達式語法
符號 |
匹配 |
實例 |
^ |
匹配字符串開頭 |
|
$ |
匹配字符串結尾 |
|
. |
任意字符,除了回車\r和換行\n,如果指定多行,也能匹配。 |
|
|
[…]匹配中括號中的 任意一個。 |
|
[a-z] |
-表示範圍 |
|
[^a-z] |
^表示不再這個範圍內 |
|
|
數量匹配 |
|
a{1,10} |
表示匹配長度在1到10 之間 |
|
a{3,} |
表示匹配長度大於等於3 |
|
a{,10} |
表示匹配長度在10之內 |
|
a{5} |
表示匹配長度是5個 |
|
a? |
表示匹配長度是1個或零個 |
|
a* |
表示匹配長度是0個或多個 |
|
a+ |
表示匹配長度是一個或者以上 |
|
a1 | b222 |
滿足二者之一 |
|
字符類 |
[:character_class:] |
|
字符類 |
含義 |
alnum |
字母和數字 |
alpha |
字母,類似\w+ |
blank |
空格 |
cntrl |
Control characters |
digit |
數字, 類似於\d+ |
graph |
Graphic characters |
lower |
小寫字母 |
print |
Graphic or space characters |
punct |
標點符號 |
space |
空格,tab, 回車,換行 |
upper |
大寫字母 |
xdigit |
16進制的數字,包括0-9, a-f |
正則函數使用
基本使用
字符串 [NOT] REGEXP|RLIKE 正則表達式,返回0或者1
兩個關鍵字,是REGEXP_LIKE()的別名,效果一樣
REGEXP_LIKE(expr, pat[, match_type])
參數 |
含義 |
expr |
需要匹配的字符串 |
pat |
正則表達式 |
match_type |
匹配類型 |
c |
大小寫區別 |
i |
不區別大小寫 |
m |
多行匹配,識別行結束符, 可以在正則表達式中使用(?m) |
n |
(.)能匹配行結束符號 |
u |
僅匹配Unix的行結束符 |