正規表示式常用來檢索和取代那些符合魔種模式的文字。例如從一個文字檔案中提取電話號碼,尋找一篇文章中重複的單字或取代使用者輸入的某些敏感詞彙等。 Mysql 使用 REGEXP 關鍵字指定正規表示式的字元匹配模式。 Mysql 使用 REGEXP 關鍵字指定正規表示式的字元匹配模式。接下來透過本文跟大家分享MySql中使用正規表示式查詢的方法,有興趣的朋友一起看看吧,希望能幫助大家。
1. 字元'^' 查詢以特定字元或字串開頭的記錄
SELECT * FROM user WHERE email REGEXP '^a'
字元'^' 符合以特定字元或字串開頭的記錄,以上語句查詢郵件信箱以a 開頭的記錄
2. 字元' 查詢以特定字元或字串結尾的記錄
SELECT * FROM user WHERE phone REGEXP '0$'
字元'$' 匹配以特定字元或字串結尾的記錄,以上語句查詢郵件信箱以0 結尾的記錄
3. 用符號「.」;來取代字串中的任一個字元
SELECT * FROM user WHERE email REGEXP 'a.c'
查詢郵件信箱a、c 之間有一個字元的記錄,'.' 相當於是一個佔位符。如果寫成 REGEXP ‘a..c' , 即a、c之間有兩個點,則表示郵箱中 a、c 之間要有兩個字元。
4.使用「*」來匹配多個字元
SELECT * FROM user WHERE email REGEXP 'm*'
查詢所有郵箱中有 m 的記錄。
SELECT * FROM user WHERE email REGEXP '^am*'
查詢郵件信箱字母 a開頭, a後面有字母 m 的記錄。其中'*' 表示0次或以上。
5. 以字元「+」表示緊接的字元
SELECT * FROM user WHERE email REGEXP 'm+'
查詢所有郵件信箱中有 m 的記錄。
SELECT * FROM user WHERE email REGEXP '^am+'
查詢郵箱字母 a開頭, a後面緊跟著字母 m 的記錄。其中'+' 表示緊接字元。
6. “|” 分隔條件符合指定字串
SELECT * FROM user WHERE email REGEXP 'qq.com|163.com'
正規表示式可以符合指定的字串,字串之間使用 “|” 分隔。
7. “[]” 表示集合符合指定字串中的任一個
SELECT * FROM user WHERE email REGEXP '[az]'
”[]“ 指定一個集合,以上表示查詢信箱中帶有a或z或兩者都有的郵箱。也可以用來配對數字集合,例如 [0-9] 表示集合區間所有數字,[a-z] 表示集合區間所有字母。
8. 「[^]」符合指定字元以外的字元
SELECT * FROM user WHERE email REGEXP '[^a-d1-3]'
如上符合郵件匣中不包含 a、b、c、d 且 不包含 1、2、3 的記錄。
9. 使用{n,} 或 {n,m} 來指定字串連接出現的次數
SELECT * FROM user WHERE email REGEXP 'b{2}'
表示字母 b 至少出現 2 次。
SELECT * FROM user WHERE email REGEXP 'yu{1,3}'
表示字串 ba 至少出現1次,至多出現3次。
相關推薦:
#以上是MySql中使用正規表示式查詢實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!