mysql正規表示式

2022-11-24 18:11:08 字數 1133 閱讀 7670

正規表示式的作用是匹配文字,將一個模式(正規表示式)與一個文字串進行比較。mysql用where子句對正規表示式提供了初步的支援,允許你指定正規表示式,過濾select檢索出的資料。

regexp關鍵字來匹配正則

select name from tab1 where name regexp 'abc'; //regexp後所跟的東西作為正規表示式

'.'是以匹配任意一個字元

'a|b'可以匹配了兩個a或者

'[abc]'可以匹配abc中的某一個字元

'[^a]'匹配除a以外的資料

'[1-9]'匹配1到9中的任何一個數字,[a-z]和[a-z]同[1-9]

'\'是相當於轉義字元

select name from tab1 where name regexp 'a|b';

[:alnum:]  任意字母和數字(同[a-za-z0-9])

[:alpha:]  任意字元(同[a-za-z])

[:blank:]  空格和製表(同[\t])

[:cntrl:]  ascii控制字元(ascii 0到31和127)

[:digit:]  任意數字(同[0-9])

[:graph:]  與[:print:]相同,但不包括空格

[:lower:]  任意小寫字母(同[a-z])

[:print:]  任意可列印字元

[:punct:]  既不在[:alnum:]又不在[:cntrl:]中的任意字元

[:space:]  包括空格在內的任意空白字元(同[\f\n\r\t\v])

[:upper:]  任意大寫字母(同[a-z])

[:xdigit:] 任意十六進位制數字(同[a-fa-f0-9])

? 0個或1個匹配(等於)

指定數目的匹配

不少於指定數目的匹配

匹配數目的範圍(m不超過255)

將以上的字元放在你想匹配的字元的後面,即可匹配多個字元

eg:select name from tab1 where name regexp 'a*'; 匹配0個和多個a

'^' 匹配文字的開始

'$' 匹配文字的結尾

[[:<:]] 匹配詞的開始

[[:>:]] 匹配詞的結尾