mysql 中的正則表達式

參考原文: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的行結束符
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章