MySQL支援基於正規表示式和regexp運算子的另一種模式的匹配操作。以下這篇文章就帶大家認識MySQL的正規表示式(Regexp),透過範例來簡單介紹MySQL中如何使用正規表示式(Regexp),希望對大家有幫助。
MySQL 正規表示式(Regexp)的簡單介紹
1、它提供了強大而靈活的匹配模式,可以幫助我們為資料庫系統實現強大的搜尋實用程式。
2、regexp是執行正規表示式模式比對時使用的運算符,rlike是同義詞。
3、它還支援許多元字符,這些元字符在執行模式匹配時可以提供更大的靈活性和控制。
4、反斜線用作轉義字元。如果使用了雙反斜杠,則僅在模式匹配中考慮。
5、不區分大小寫。
以下是正規模式表,可以與REGEXP 運算元一起使用。 【相關影片教學推薦:MySQL影片教學】
#模式 | 描述(具體要匹配什麼) | ||||
^ | 符合字串的開始位置。 | ||||
$ | 符合字串的結束位置。 | ||||
. | 符合 "\n" 以外的任何單一字元。 | ||||
[...] | 符合所包含的任一字元。 | ||||
[^...] | 符合未包含的任意字元。 | ||||
? | 符合它前面的零個或一個子表達式(字串)。 | ||||
* | 符合它前面的零個或多個子表達式(字串)。 | ||||
符合它前面的一個或多個子表達式(字串)。 | |||||
[abc] | 符合方括號之間列出的任何字元。 | ||||
[^abc] | 符合方括號之間未列出的任何字元。 | ||||
[A-Z] | 符合任何大寫字母。 | ||||
[a-z] | 符合任何小寫字母。 | ||||
[0-9] | 符合從0到9的任何數字。 | ||||
[[:<:]] | 符合單字的開頭。 | ||||
[[:>:]] | 符合單字的結尾。 | ||||
[:class:] | 匹配字元類,即[:alpha:]匹配字母,[:space:]匹配空格,[:punct:]匹配標點符號,[:upper:] 符合上層字母。 | ||||
p1|p2|p3 | 符合任何模式,p1或 p2或p3 | ||||
匹配n前面元素的子表達式 | |||||
#對m到前面元素的n個子表達式 |
#使用範例:
1、符合字串的開頭(^):
符合name欄位以'sa'開頭的所有數據,範例:Sample-sam,samarth。SELECT name FROM student_tbl WHERE name REGEXP '^sa';
2、符合字串的結尾($):
符合name欄位以'on'結尾的所有數據,例:norton,merton。SELECT name FROM student_tbl WHERE name REGEXP 'on$';
3、匹配它前面的字串的零或一個子表達式(?):
匹配title欄位包含'com'的所有數據,例:comedy ,romantic comedy。SELECT title FROM movies_tbl WHERE title REGEXP 'com?';
4、符合任何模式p1或p2或p3(p1 | p2 | p3):
符合name欄位包含'be'或'ae'的所有數據,例: Abel,Baer。SELECT name FROM student_tbl WHERE REGEXP 'be|ae' ;
5、匹配方括號([abc])之間列出的任何字元:
符合name欄位包含'j'或'z'的所有數據,例:Lorentz,Rajs。SELECT name FROM student_tbl WHERE REGEXP '[jz]' ;
6、符合'a'到'z' 之間的任何單一小寫字母([a-z])([a-z]和(.)):
#匹配name字段中第一位包含“b”和“g”範圍內字母,第二位包含任何字符,第三位包含字母'a'的所有字符串數據,例: Tobias,sewall。 符合任何單一字元(.)SELECT name FROM student_tbl WHERE REGEXP '[b-g].[a]' ;
7、符合方括號之間未列出的任何字元([^ abc]):
符合所有不包含'j'或'z'的名稱。例: nerton,sewall。SELECT name FROM student_tbl WHERE REGEXP '[^jz]' ;
8、匹配單字結尾位置的子字串[[:>:]]
匹配title欄位中以字元「ack」結尾的所有數據,例:Black。SELECT title FROM movies_tbl WHERE REGEXP 'ack[[:>:]]';
9、符合單字開頭位置的子字串[[:<:]]
符合title欄位中以字元「for」開頭的所有數據,例:Forgetting Sarah Marshal.。SELECT title FROM movies_tbl WHERE title REGEXP '[[:<:]]for';
10、匹配字符類別[:類:]:
ie [:lower:] - 小寫字符,[:digit:] - 數字字符等。 符合title欄位中僅包含字母字元的所有數據,範例:stranger things, Avengers。SELECT title FROM movies_tbl WHERE REGEXP '[:alpha:]' ;
以上是MySQL如何使用正規表示式? (程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!