1. 程式人生 > >mysql 查詢語句中使用正則表示式

mysql 查詢語句中使用正則表示式

正則表示式的使用
正則表示式(Regular Expression),是指一個用來描述或者匹配一系列符合某個句法規則的
字串的單個字串。在很多文字編輯器或其他工具裡,正則表示式通常被用來檢索和/或
替換那些符合某個模式的文字內容。許多程式設計語言都支援利用正則表示式進行字串操
作。例如,在Perl 中就內建了一個功能強大的正則表示式引擎。正則表示式這個概念最初
是由UNIX 中的工具軟體(例如SED 和GREP)普及開的,通常縮寫成“REGEX”或者“REGEXP”。
MySQL 利用REGEXP 命令提供給使用者擴充套件的正則表示式功能,REGEXP 實現的功能,類似UNIX
上GREP 和SED 的功能,並且REGEXP 在進行模式匹配時是區分大小寫的。熟悉並掌握REGEXP
的功能可以使模式匹配工作事半功倍。
MySQL 5.0 中可以使用的模式序列如表17-1 所示。
表17-1 正則表示式中的模式
序列 序列說明
^ 在字串的開始處進行匹配
$ 在字串的末尾處進行匹配
. 匹配任意單個字元,包括換行符
[…] 匹配出括號內的任意字元
[^…] 匹配不出括號內的任意字元
a* 匹配零個或多個a(包括空串)
a+ 匹配1 個或多個a(不包括空串)
a? 匹配1 個或零個a
a1|a2 匹配a1 或a2
a(m) 匹配m 個a
a(m,) 匹配m 個或更多個a
a(m,n) 匹配m 到n 個a

a(,n) 匹配0 到n 個a

mysql> select name ,email from t where email REGEXP "@163[.,]com$";

mysql> select name ,email from t where email like “@163%.com” or email like “@163%,com”