檢索列prod_name包含文字1000的所有行:select prod_name from products where prod_name regexp '1000' order by prod_name;
用點(.)表示匹配任意乙個字元:select prod_name from products where prod_name regexp '.000' order by prod_name;
進行or匹配:select prod_name from products where prod_name regexp '1000|2000' order by prod_name;
匹配幾個字元之一:select prod_name from products where prod_name regexp '[123] ton' order by prod_name;
(事實上,正規表示式[123]ton 為[1|2|3]ton的縮寫)
字元集合也可以被否定:[ˆ123]
匹配範圍:select prod_name from products where prod_name regexp '[1-5] ton' order by prod_name;
匹配特殊字元,必須用 \\ 為前導,\\-表示查詢-,\\.表示查詢.。
空白元字元:
元字元說明
\\f換頁
\\n換行
\\r回車
\\t製表
\\v縱向製表
匹配字元類:類說明
[:alnum:]
任意字母和數字
[:alpha:]
任意字母
[:blank:]
空格和製表
[:cntrl:]
ascii控制字元
[:digit:]
任意數字
[:graph:]
與[: print: ] 相同,但不包括空格
[:lower:]
任意小寫字母
[:print:]
任意可列印字元
[:punct:]
既不在[: alnum: ] 又不在 [: alnum: ] 中的任意字元
[:space:]
包括空格在內的任意空白字元
[:upper:]
任意大寫字母
[:xdigit:]
任意十六進製制數字
重複元字元:
元字元說明
*0個或多個匹配
+1個或多個匹配(等於
?0個或1個匹配(等於
指定數目的匹配
不少於指定數目的匹配
匹配數目的範圍(m不超過255
舉例說明:select prod_name from products where prod_name regexp '\\([0-9] sticks?\\)' order by prod_name;
匹配連在一起的4位數字:select prod_name from products where prod_name regexp '[[:digit:]]' order by prod_name;
定位元字元:
元字元說明
^文字的開始
$文字的結尾
[[:<:]]
詞的開始
[[:>:]]
詞的結尾
找出以乙個數(包括以小數點開始的數)開始的所有產品:select prod_name from products where prod_name regexp '^[0-9\\.]' order by prod_name;
mysql正規表示式 MySQL正規表示式
正規表示式是為複雜搜尋指定模式的強大方式。正規表示式描述了一組字串。最簡單的正規表示式是不含任何特殊字元的正規表示式。例如,正規表示式hello匹配hello。非平凡的正規表示式採用了特殊的特定結構,從而使得它們能夠與1個以上的字串匹配。例如,正規表示式hello word匹配字串hello或字串w...
mysql 正規表示式
已知mysql可以通過 like 來進行模糊匹配。mysql 同樣也支援其他正規表示式的匹配,mysql中使用 regexp 操作符來進行正規表示式匹配。例項 查詢name欄位中以 st 為開頭的所有資料 mysql select name from person tbl where name re...
MySQL正規表示式
在前面我們已經看到了mysql的模式匹配 like mysql支援另一種型別的模式匹配的操作基於正規表示式和正規表示式運算子。如果知道php或perl,那麼它是非常簡單的,因為這匹配非常相似於指令碼正規表示式。以下是模式的 其可以連同regexp運算子使用。模式什麼樣的模式匹配 開始的乙個字串 結束...