很多資料庫系統都支援標準
sql模式的查詢,因此它具有一定的可移植性,但是它也有一定的侷限性,例如可以使用標準
sql的
like 『%abc%』
找所有包含
』abc』
的字串,卻很難實現查詢包含
a,b或
c中任意乙個字母的字串,
mysql
提供非常強大的基於正規表示式的模式匹配操作
regexp & not regexp
,oracle 10g
也引入了正規表示式。 ^
匹配字串的開始部分 $
匹配字串的結尾部分 .
匹配任何字元
(包括回車和換行)
[…] [a-z] [0-9] [a-z0-9] 括號
(集合)內任意乙個字元
[^…]
除了括號內所列字元之外的任意乙個字元
p1 | p2 | p3 p1
、p2或p3
中任意乙個模式串成立 *
匹配0或多個
*之前的任何序列 +
匹配1或多個
+之前的任何序列
n個之前的任何序列
最少m個,最多n個,
之前的任何序列
mysql> select name from metal where name regexp '^co';
+--------+
| name |
+--------+
| copper |
+--------+
mysql> select name from metal where name regexp 'er$';
+--------+
| name |
+--------+
| copper |
| silver |
+--------+
mysql> select name from metal where name regexp 'er';
+---------+
| name |
+---------+
| copper |
| mercury |
| silver |
+---------+
mysql> select name from metal where name regexp '^..pp';
+--------+
| name |
+--------+
| copper |
+--------+
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運算子使用。模式什麼樣的模式匹配 開始的乙個字串 結束...