mysql支持基于正則表達式和regexp運算符的另一種模式匹配操作。(相關推薦:《mysql教程》)
1.它提供了強大而靈活的模式匹配,可以幫助我們為數據庫系統實現power搜索實用程序。
2.REGEXP是執行正則表達式模式匹配時使用的運算符。
3.RLIKE是同義詞。它還支持許多元字符,這些元字符在執行模式匹配時可以提供更大的靈活性和控制。
4.反斜杠用作轉義字符。如果使用了雙反斜杠,則僅在模式匹配中考慮。
5.不區分大小寫。
PATTERN | 模式匹配的是什么 |
* | 在它之前的零個或多個字符串實例 |
+ | 在它之前的一個或多個字符串實例 |
. | 任何一個角色 |
? | 匹配前面的字符串的零個或一個實例。 |
^ | 插入符號(^)匹配字符串的開頭 |
$ | 字符串結束 |
[abc] | 方括號之間列出的任何字符 |
[^abc] | 方括號之間未列出的任何字符 |
[A-Z] | 匹配任何大寫字母。 |
[a-z] | 匹配任何小寫字母 |
[0-9] | 匹配從0到9的任何數字。 |
[[:<:> | 匹配單詞的開頭。 |
[[:>:]] | 匹配單詞的結尾。 |
[:class:] | 匹配一個字符類,即[:alpha:]匹配字母,[:space:]匹配空格,[:punct:]匹配標點符號,[:upper:]匹配上層字母。 |
p1|p2|p3 | 輪換;?匹配任何模式p1,p2或p3 |
{n} | n前面元素的實例 |
{m,n} | m到前面元素的n個實例 |
舉例說明:
匹配字符串開頭(^):
給出所有以“sa”開頭的名稱。例子——sam,samarth。
SELECT?name?FROM?student_tbl?WHERE?name?REGEXP?'^sa';
匹配字符串的末尾($):
給出所有以“on”結尾的名稱。例子——norton,merton.
SELECT?name?FROM?student_tbl?WHERE?name?REGEXP?'on$';
匹配它前面字符串的零個或一個實例(?):
給出所有包含“com”的標題。例子-comedy , romantic comedy.
SELECT?title?FROM?movies_tbl?WHERE?title?REGEXP?'com?';
匹配p1、p2或p3(p1|p2|p3)中的任何模式:
給出所有包含“be”或“ae”的名稱。例子——Abel, Baer.
SELECT?name?FROM?student_tbl?WHERE?REGEXP?'be|ae'?;
匹配方括號([abc])中列出的任何字符:
給出包含“j”或“z”的所有名稱。例子-Lorentz, Rajs.
SELECT?name?FROM?student_tbl?WHERE?REGEXP?'[jz]'?;
匹配’ a ‘到’ z ‘ – ([a-z]) ([a-z]和(.)之間的任何小寫字母:
檢索包含字母“b”和“g”范圍內的所有名稱,后跟任意字符,后跟字母“a”。例如,Tobias, sewall.
匹配任何單個字符(.)
SELECT?name?FROM?student_tbl?WHERE?REGEXP?'[b-g].[a]'?;
匹配任何不在方括號中列出的字符。([^abc]):
給出所有不包含“j”或“z”的名稱。例如:?nerton, sewall.
SELECT?name?FROM?student_tbl?WHERE?REGEXP?'[^jz]'?;
匹配單詞結尾[[:>:]]:
給出所有以字符“ack”結尾的標題。例子——Black.
SELECT?title?FROM?movies_tbl?WHERE?REGEXP?'ack[[:>:]]';
匹配單詞開頭[[:<:>
給出所有以字符“for”開頭的標題。例子-Forgetting Sarah Marshal.
SELECT?title?FROM?movies_tbl?WHERE?title?REGEXP?'[[:<:><p><strong>匹配一個字符類[:class:]:</strong></p> <p>i.e [:lower:]-小寫字符,[:digit:] -數字字符等。</p> <p>只給出包含字母字符的所有標題。例子-stranger things, Avengers.</p> <pre class="brush:php;toolbar:false">SELECT?title?FROM?movies_tbl?WHERE?REGEXP?'[:alpha:]'?;
本篇文章就是關于mysql正則表達式(Regexp)的示例詳解,希望對需要的朋友有吧幫助!