首頁 > 資料庫 > mysql教程 > MySQL如何使用正規表示式? (程式碼範例)

MySQL如何使用正規表示式? (程式碼範例)

青灯夜游
發布: 2019-01-12 13:27:01
原創
10708 人瀏覽過

MySQL支援基於正規表示式和regexp運算子的另一種模式的匹配操作。以下這篇文章就帶大家認識MySQL的正規表示式(Regexp),透過範例來簡單介紹MySQL中如何使用正規表示式(Regexp),希望對大家有幫助。

MySQL如何使用正規表示式? (程式碼範例)

MySQL 正規表示式(Regexp)的簡單介紹

1、它提供了強大而靈活的匹配模式,可以幫助我們為資料庫系統實現強大的搜尋實用程式。

2、regexp是執行正規表示式模式比對時使用的運算符,rlike是同義詞。

3、它還支援許多元字符,這些元字符在執行模式匹配時可以提供更大的靈活性和控制。

4、反斜線用作轉義字元。如果使用了雙反斜杠,則僅在模式匹配中考慮。

5、不區分大小寫。

以下是正規模式表,可以與REGEXP 運算元一起使用。 【相關影片教學推薦:MySQL影片教學

###{n}匹配n前面元素的子表達式{m,n}#對m到前面元素的n個子表達式
模式 描述(具體要匹配什麼)
^ 符合字串的開始位置。
$ 符合字串的結束位置。
. 符合 "\n" 以外的任何單一字元。
[...] 符合所包含的任一字元。
[^...] 符合未包含的任意字元。
? 符合它前面的零個或一個子表達式(字串)。
* 符合它前面的零個或多個子表達式(字串)。
符合它前面的一個或多個子表達式(字串)。
[abc] 符合方括號之間列出的任何字元。
[^abc] 符合方括號之間未列出的任何字元。
[A-Z] 符合任何大寫字母。
[a-z] 符合任何小寫字母。
[0-9] 符合從0到9的任何數字。
[[:<:]]符合單字的開頭。
[[:>:]] 符合單字的結尾。
[:class:] 匹配字元類,即[:alpha:]匹配字母,[:space:]匹配空格,[:punct:]匹配標點符號,[:upper:] 符合上層字母。
p1|p2|p3 符合任何模式,p1或 p2或p3

#使用範例:

#下面透過簡單的範例來介紹MySQL 正規表示式(Regexp)的使用。

1、符合字串的開頭(^):

符合name欄位以'sa'開頭的所有數據,範例:Sample-sam,samarth。

SELECT name FROM student_tbl WHERE name REGEXP &#39;^sa&#39;;
登入後複製

2、符合字串的結尾($):

符合name欄位以'on'結尾的所有數據,例:norton,merton。

SELECT name FROM student_tbl WHERE name REGEXP &#39;on$&#39;;
登入後複製

3、匹配它前面的字串的零或一個子表達式(?):

匹配title欄位包含'com'的所有數據,例:comedy ,romantic comedy。

SELECT title FROM movies_tbl WHERE title REGEXP &#39;com?&#39;;
登入後複製

4、符合任何模式p1或p2或p3(p1 | p2 | p3):

符合name欄位包含'be'或'ae'的所有數據,例: Abel,Baer。

SELECT name FROM student_tbl WHERE REGEXP &#39;be|ae&#39; ;
登入後複製

5、匹配方括號([abc])之間列出的任何字元:

符合name欄位包含'j'或'z'的所有數據,例:Lorentz,Rajs。

SELECT name FROM student_tbl WHERE REGEXP &#39;[jz]&#39; ;
登入後複製

6、符合'a'到'z' 之間的任何單一小寫字母([a-z])([a-z]和(.)):

#匹配name字段中第一位包含“b”和“g”範圍內字母,第二位包含任何字符,第三位包含字母'a'的所有字符串數據,例: Tobias,sewall。

符合任何單一字元(.)

SELECT name FROM student_tbl WHERE REGEXP &#39;[b-g].[a]&#39; ;
登入後複製

7、符合方括號之間未列出的任何字元([^ abc]):

符合所有不包含'j'或'z'的名稱。例: nerton,sewall。

SELECT name FROM student_tbl WHERE REGEXP &#39;[^jz]&#39; ;
登入後複製

8、匹配單字結尾位置的子字串[[:>:]]

匹配title欄位中以字元「ack」結尾的所有數據,例:Black。

SELECT title FROM movies_tbl WHERE REGEXP &#39;ack[[:>:]]&#39;;
登入後複製

9、符合單字開頭位置的子字串[[:<:]]

符合title欄位中以字元「for」開頭的所有數據,例:Forgetting Sarah Marshal.。

SELECT title FROM movies_tbl WHERE title REGEXP &#39;[[:<:]]for&#39;;
登入後複製

10、匹配字符類別[:類:]:

ie [:lower:] - 小寫字符,[:digit:] - 數字字符等。

符合title欄位中僅包含字母字元的所有數據,範例:stranger things, Avengers。

SELECT title FROM movies_tbl WHERE REGEXP &#39;[:alpha:]&#39; ;
登入後複製

以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以追蹤php中文網相關教學欄位! ! !

以上是MySQL如何使用正規表示式? (程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板