mysql中的模式匹配分為兩種:
一種是標準sql匹配,另一種是 正規表示式匹配
標準sql匹配,我們通常用的最多的一種方式
a:使用like和not like比較操作符(注意不能使用=或!=);
b:模式預設是忽略大小寫的;
c:允許使用」_」匹配任何單個字元,」%」匹配任意數目字元(包括零字元);
正規表示式匹配。用的極少,極其影響效能
a:使用regexp和not regexp操作符
b:標準sql匹配即like,使用的是完全匹配,regexp使用的是部分匹配。
所謂完全匹配就是只有被匹配字元完全和所定義的模式匹配,才匹配成功,而部分匹配是只要被匹配字元包含或者可以等於所定義的模式,就匹 配成功。
正規表示式匹配示例
^ 所匹配的字串以後面的字串開頭
mysql> select "fonfo" regexp "^fo$"; -> 0(表示不匹配)
mysql> select "fofo" regexp "^fo"; -> 1(表示匹配)
$ 所匹配的字串以前面的字串結尾
mysql> select "fono" regexp "^fono$"; -> 1(表示匹配)
mysql> select "fono" regexp "^fo$"; -> 0(表示不匹配)
. 匹配任何字元(包括新行)
mysql> select "fofo" regexp "^f.*"; -> 1(表示匹配)
mysql> select "fonfo" regexp "^f.*"; -> 1(表示匹配)
a* 匹配任意多個a(包括空串)
mysql> select "ban" regexp "^ba*n"; -> 1(表示匹配)
mysql> select "baaan" regexp "^ba*n"; -> 1(表示匹配)
mysql> select "bn" regexp "^ba*n"; -> 1(表示匹配)
a+ 匹配1個或多個a字元的任何序列。
mysql> select "ban" regexp "^ba+n"; -> 1(表示匹配)
mysql> select "bn" regexp "^ba+n"; -> 0(表示不匹配)
a? 匹配乙個或零個a
mysql> select "bn" regexp "^ba?n"; -> 1(表示匹配)
mysql> select "ban" regexp "^ba?n"; -> 1(表示匹配)
mysql> select "baan" regexp "^ba?n"; -> 0(表示不匹配)
de|abc 匹配de或abc
mysql> select "pi" regexp "pi|apa"; -> 1(表示匹配)
mysql> select "axe" regexp "pi|apa"; -> 0(表示不匹配)
mysql> select "apa" regexp "pi|apa"; -> 1(表示匹配)
mysql> select "apa" regexp "^(pi|apa)$"; -> 1(表示匹配)
mysql> select "pi" regexp "^(pi|apa)$"; -> 1(表示匹配)
mysql> select "pix" regexp "^(pi|apa)$"; -> 0(表示不匹配)
(abc)* 匹配任意多個abc(包括空串)
mysql> select "pi" regexp "^(pi)*$"; -> 1(表示匹配)
mysql> select "pip" regexp "^(pi)*$"; -> 0(表示不匹配)
mysql> select "pipi" regexp "^(pi)*$"; -> 1(表示匹配)
這是乙個更全面的方法,它可以實現前面好幾種保留字的功能
a* 可以寫成a
a 可以寫成a
a? 可以寫成a
在{}內只有乙個整型引數i,表示字元只能出現i次;在{}內有乙個整型引數i, 後面跟乙個「,」,表示字元可以出現i次或i次以上;在{}內只有乙個整型引數i, 後面跟乙個「,」,再跟乙個整型引數j,表示字元只能出現i次以上,j次以下(包括i次和j次)。其中的整型引數必須大於等於0,小於等於 re_dup_max(預設是255)。 如果同時給定了m和n,m必須小於或等於n.
注意 匹配特殊字元
\\ 為前導。即轉義.正規表示式內具有特殊意義的所有字元都必須以這種方式轉義。
\\- 表示查詢 -
\\. 表示查詢 .
正規表示式 匹配
字串 void abtr quint32 ab 表示乙個正規表示式 template class bidirectionaliterator class allocator std allocator sub match bidirectionaliterator class match resul...
正規表示式匹配
請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 ab ac a 匹配,但是與 aa.a 和 ab a 均不匹配 解法 首先要想到用遞迴處理...
正規表示式匹配
請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 ab ac a 匹配,但是與 aa.a 和 ab a 均不匹配 class solutio...