在變成中會經常使用到正規表示式,在資料庫的查詢操作中也不例外,在資料庫操作也有相關的正規表示式(後稱正則)。
前便學習了%和_進行統配操作,但是有時候資料特殊,無法使用上述兩種萬用字元進行過濾,那麼就需要使用正則進行資料篩選。
regexp語句,常用於修飾子句,對資料進行過濾,和like的使用方法相似。
mysql> select * from demo1
-> where username regexp "ad"
-> order by username desc;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
| 1 | admin | admin |
+----+----------+----------+
1 row in set (0.00 sec)
這是regexp的常用方式,沒什麼特殊的地方。下面是使用了正規表示式的部分。
.是正則中很常用的一種運算子,這裡表示匹配任意字元。
mysql> select * from demo1
-> where username regexp "ad."
-> order by username desc;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
| 1 | admin | admin |
+----+----------+----------+
1 row in set (0.00 sec)
即是或的意思,和like的or類似。
mysql> select * from demo1
-> where username regexp "ad.|t."
-> order by username desc;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
| 4 | ttt | ttt |
| 2 | test | test |
| 1 | admin | admin |
+----+----------+----------+
3 rows in set (0.00 sec)
有時候會出現乙個資料段進行正則匹配,那麼久會使用區間進行正則匹配。
mysql> select * from demo1
-> where username regexp "[1-2] t"
-> order by username desc;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
| 6 | 2 t | 2 t |
| 5 | 1 t | 1 t |
+----+----------+----------+
2 rows in set (0.00 sec)
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...