澳门新葡亰平台游戏网站MYSQL 正则查询

正则表明式

正则表明式(regex卡塔尔(قطر‎是概念复杂查询的二个有力的工具。
  这里是一个简约的资料,它忽视了有些详尽的音讯。
  正则表明式定义了三个字符串的规行矩步。最简易的正则表达式不带有别的保留字。譬喻,正则表明式hello只和字符串“hello”相称。
  平日的正则表明式使用了好几特殊的构造,所以它能匹配更加多的字符串。举例,正则表明式hello|word既可以相配字符串“hello”也能相称字符串
“word”。举二个更头晕目眩一点的例子,正则表达式B[an]*s可以相称字符串“Bananas”、“Baaaaas”
、“Bs”以至其它任何以B伊始以s结尾的字符串,中间能够归纳随机个a和Infiniti定个n的重新整合。
  多少个正则表明式中的能够接纳以下保留字
  ^
  所相配的字符串早先面包车型地铁字符串初叶
  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+
  匹配跋扈多个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|apaState of Qatar$”; -> 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(表示卓殊)
  {1}
  {2,3}
  这是一个更康健的点子,它能够兑现前边好两种保留字的成效
  a*
  能够写成a{0,}
  a+
  能够写成a{1,}
  a?
  能够写成a{0,1}
  在
{}内独有一个整型参数i,表示字符只可以现身i次;在{}内有三个整型参数i,前面跟二个“,”,表示字符能够现身i次或i次以上;在{}内仅有叁个整型参数i,前面跟一个“,”,再跟二个整型参数j,表示字符只可以现身i次上述,j次以下(包含i次和j次)。个中的整型参数必须大于等于0,小于等于
RE_DUP_MAX(默许是255)。假如有多少个参数,第二个必得高于等于第二个
  [a-dX]
  匹配“a”、“b”、“c”、“d”或“X”
  [^a-dX]
澳门新葡亰平台游戏网站 ,  相称除“a”、“b”、“c”、“d”、“X”以外的别样字符。“[”、“]”必得成对使用
  mysql> select “aXbc” REGEXP “[a-dXYZ]”; -> 1(表示卓殊)
  mysql> select “aXbc” REGEXP “^[a-dXYZ]$”; ->
0(表示不相称)
  mysql> select “aXbc” REGEXP “^[a-dXYZ]+$”; ->
1(表示格外)
  mysql> select “aXbc” REGEXP “^[^a-dXYZ]+$”; ->
0(表示不配合)
  mysql> select “gheis” REGEXP “^[^a-dXYZ]+$”; ->
1(表示极度)
  mysql> select “gheisa” REGEXP “^[^a-dXYZ]+$”; ->
0(表示不匹配)
  ————————————————————
  [[.characters.]]
  代表相比较成分的逐一。在括号内的字符顺序是独一的。不过括号中得以包括通配符,
所以他能相配愈来愈多的字符。举个例子来讲:正则表明式[[.ch.]]*c匹配chchcc的前四个字符。
  [=character_class=]
  代表万分的类,能够代替类中别的相等的因素,富含它自身。举例,假如o和(+卡塔尔是三个十一分的类的积极分子,那么[[=o=]]、[[=(+)=]]和[o(+)]是一心等价的。
  [:character_class:]
  在括号里面,在[:和:]中等是字符类的名字,能够代表属于这么些类的富有字符。
  字符类的名字有:
alnum、digit、punct、阿尔法、graph、space、blank、lower、upper、cntrl、print和xdigit
  mysql> select “justalnums” REGEXP “[[:alnum:]]+”; ->
1(表示相当)
  mysql> select “!!” REGEXP “[[:alnum:]]+”; ->
0(表示不匹配)
  [[::]]
  分别相配叁个单词发轫和最终的空的字符串,这几个单词伊始和最后都不是带有在alnum中的字符也不可能是下划线。
  mysql> select “a word a” REGEXP “[[::]]”; ->
1(表示拾叁分)
  mysql> select “a xword a” REGEXP “[[::]]”; ->
0(表示不相称)
  mysql> select “weeknights” REGEXP “^(wee|weekState of Qatar(knights|nights卡塔尔$”;
-> 1(表示极度)

正则表明式:

mysql select fofo REGEXP ^fo; – 1

这里是二个大致的素材,它忽视了一部分详实的新闻。
正则表明式定义了二个字符串…

正则表达式是为复杂性搜索钦点形式的强硬情势。

$

^

所相配的字符串从前边的字符串结尾

所相配的字符串早前边的字符串开始

mysql select fono REGEXP ^fono$; – 1

mysql> select “fonfo” REGEXP “^fo$”; -> 0(表示不匹配)

mysql select fono REGEXP ^fo$; – 0

mysql> select “fofo” REGEXP “^fo”; -> 1(表示相当)

.

$

极度任何字符

所相称的字符串在此以前面的字符串结尾

mysql select fofo REGEXP ^f.*; – 1

mysql> select “fono” REGEXP “^fono$”; -> 1(表示卓绝)

mysql select fonfo REGEXP ^f.*; – 1

mysql> select “fono” REGEXP “^fo$”; -> 0(表示不包容)

a*

.

格外任性多少个a

格外任何字符(饱含新行)

mysql select Baaan REGEXP ^Ba*n; – 1

mysql> select “fofo” REGEXP “^f.*”; -> 1(表示至极)

mysql select Bn REGEXP ^Ba*n; – 1

mysql> select “fonfo” REGEXP “^f.*”; -> 1(表示特别)

a+

a*

匹配大肆多少个a

相称任性八个a(包涵空串卡塔尔国

mysql select Bn REGEXP ^Ba+n; – 0

mysql> select “Ban” REGEXP “^Ba*n”; -> 1(表示拾贰分)

a?

mysql> select “Baaan” REGEXP “^Ba*n”; -> 1(表示万分)

万分三个或零个a

mysql> select “Bn” REGEXP “^Ba*n”; -> 1(表示特别)

mysql select Bn REGEXP ^Ba?n; – 1

a+

mysql select Ban REGEXP ^Ba?n; – 1

配合1个或多个a字符的任何种类。

mysql select Baan REGEXP ^Ba?n; – 0

mysql> select “Ban” REGEXP “^Ba+n”; -> 1(表示格外)

de|abc

mysql> select “Bn” REGEXP “^Ba+n”; -> 0(表示不相称)

匹配de或abc

a?

mysql select pi REGEXP pi|apa; – 1

万分一个或零个a

mysql select axe REGEXP pi|apa; – 0

mysql> select “Bn” REGEXP “^Ba?n”; -> 1(表示万分)

mysql select apa REGEXP pi|apa; – 1

mysql> select “Ban” REGEXP “^Ba?n”; -> 1(表示非常)

mysql select apa REGEXP ^(pi|apa)$; – 1

mysql> select “Baan” REGEXP “^Ba?n”; -> 0(表示不宽容)

mysql select pi REGEXP ^(pi|apa)$; – 1

de|abc

mysql select pix REGEXP ^(pi|apa)$; – 0

匹配de或abc

(abc)*

mysql> select “pi” REGEXP “pi|apa”; -> 1(表示非常)

匹配放肆七个abc

mysql> select “axe” REGEXP “pi|apa”; -> 0(表示不相称)

mysql select pip REGEXP ^(pi)*$; – 0

mysql> select “apa” REGEXP “pi|apa”; -> 1(表示极其)

mysql select pipi REGEXP ^(pi)*$; – 1

mysql> select “apa” REGEXP “^(pi|apa卡塔尔$”; -> 1(表示极其)

{1}

mysql> select “pi” REGEXP “^(pi|apaState of Qatar$”; -> 1(表示非常)

{2,3}

mysql> select “pix” REGEXP “^(pi|apa卡塔尔国$”; -> 0(表示不相同盟)

那是三个更周详的法子,它能够达成前边好两种保留字的效应

(abc)*

a*

协作任性四个abc(包含空串卡塔尔(قطر‎

能够写成a{0,}

mysql> select “pi” REGEXP “^(pi)*$”; -> 1(表示十一分)

a+

mysql> select “pip” REGEXP “^(pi)*$”; -> 0(表示不包容)

可以写成a{1,}

mysql> select “pipi” REGEXP “^(pi)*$”; -> 1(表示特别)

a?

{1} {2,3}

能够写成a{0,1}

那是多个更宏观的主意,它能够兑现前边好二种保留字的职能

在{}内独有叁个整型参数i,表示字符只好现身i次;在{}内有三个整型参数i,后边跟三个,,表示字符能够现身i次或i次以上;在{}内独有一个整型参数i,后边跟一个,,再跟一个整型参数j,表示字符只可以现身i次上述,j次以下。在那之中的整型参数必得抢先等于0,小于等于
RE_DUP_MAX。倘诺有多个参数,第二个必须超出等于第二个

a*

[a-dX]

能够写成a{0,}

匹配a、b、c、d或X

a

[^a-dX]

能够写成a{1,}

相配除a、b、c、d、X以外的别的字符。[、]总得成对使用

a?

mysql select aXbc REGEXP [a-dXYZ]; – 1

能够写成a{0,1}

mysql select aXbc REGEXP ^[a-dXYZ]$; – 0

在{}内独有一个整型参数i,表示字符只可以现身i次;在{}内有三个整型参数i,

mysql select aXbc REGEXP ^[a-dXYZ]+$; – 1

末尾跟二个“,”,表示字符能够现身i次或i次以上;在{}内唯有一个整型参数i,

mysql select aXbc REGEXP ^[^a-dXYZ]+$; – 0

前面跟多少个“,”,再跟叁个整型参数j,表示字符只好出现i次以上,j次以下

mysql select gheis REGEXP ^[^a-dXYZ]+$; – 1

(包含i次和j次)。个中的整型参数必得大于等于0,小于等于
RE_DUP_MAX(默认是25

mysql select gheisa REGEXP ^[^a-dXYZ]+$; – 0

5)。 要是还要给定了m和n,m必需小于或等于n.


[a-dX], [^a-dX]

[[.characters.]]

协作任何是(或不是,纵然选取^的话)a、b、c、d或X的字符。四个其余字符之间的“-”字符构成三个限量,与从第三个字符开端到第3个字符之间的全数字符相配。举例,[0-9]相配任何十进制数字
。要想包罗文字字符“]”,它必须紧跟在开括号“[”之后。要想包涵文字字符“-”,它必得首先或最终写入。对于[]对内未定义任何特别含义的别的字符,仅与其自己相配。

代表相比较元素的逐一。在括号内的字符顺序是独一无二的。不过括号中能够蕴含通配符,
所以他能同盟越多的字符。比方来讲:正则表达式[[.ch.]]*c相配chchcc的前四个字符。

mysql> select “aXbc” REGEXP “[a-dXYZ]”; -> 1(表示卓殊)

[=character_class=]

mysql> select “aXbc” REGEXP “^[a-dXYZ]$”; -> 0(表示不宽容)

意味着特别的类,可以替代类中别的相等的因素,包含它和睦。比方,假使o和(+卡塔尔(قطر‎是一个对等的类的积极分子,那么[[=o=]]、[[=(+)=]]和[o(+)]是一心等价的。

mysql> select “aXbc” REGEXP “^[a-dXYZ] $”; -> 1(表示相当)

[:character_class:]

mysql> select “aXbc” REGEXP “^[^a-dXYZ] $”; -> 0(表示不合营)

在括号里面,在[:和:]中间是字符类的名字,能够象征归于这几个类的持有字符。

mysql> select “gheis” REGEXP “^[^a-dXYZ] $”; -> 1(表示极度)

字符类的名字有:
alnum、digit、punct、阿尔法、graph、space、blank、lower、upper、cntrl、print和xdigit

mysql> select “gheisa” REGEXP “^[^a-dXYZ] $”; -> 0(表示不匹配)

mysql select justalnums REGEXP [[:alnum:]]+; – 1

[[.characters.]]

mysql select !! REGEXP [[:alnum:]]+; – 0

代表相比较成分的逐个。在括号内的字符顺序是独一的。但是括号中得以分包通配符,

[[::]]

就此她能相配越来越多的字符。譬释迦牟尼讲:正则表明式[[.ch.]]*c相配chchcc的前三个字符

各自相称二个单词起头和末段的空的字符串,那些单词开头和结尾都不是满含在alnum中的字符也不可能是下划线。

mysql select a word a REGEXP [[::]]; – 1

[=character_class=]

mysql select a xword a REGEXP [[::]]; – 0

意味着至极的类,能够代表类中其余相等的因素,饱含它和煦。举例,要是o和( 卡塔尔(قطر‎是

mysql select weeknights REGEXP ^(wee|week)(knights|nights)$; – 1

三个等于的类的分子,那么[[=o=]]、[[=( )=]]和[o(
)]是全然等价的。

[:character_class:]

在括号里面,在[:和:]中等是字符类的名字,能够代表归于那么些类的具有字符。

字符类的名字有:
alnum、digit、punct、阿尔法、graph、space、blank、lower、uppe

r、cntrl、print和xdigit

mysql> select “justalnums” REGEXP “[[:alnum:]] “; ->
1(表示格外)

mysql> select “!!” REGEXP “[[:alnum:]] “; -> 0(表示不相配)

alnum:文字数字字符

阿尔法:文字字符

blank:空白字符

cntrl:调节字符

digit:数字字符

graph:图形字符

lower:小写文字字符

print:图形或空格字符

punct:标点字符

space:空格、制表符、新行、和回车

upper:大写文字字符

xdigit:十五进制数字字符

[[:<:]]

[[:>:]]

个别相称一个单词最早和末段的空的字符串,那些单词起始和结尾都不是含有在alnum中

的字符也不能够是下划线。

mysql> select “a word a” REGEXP “[[:<:]]word[[:>:]]”;
-> 1(表示卓绝)

mysql> select “a xword a” REGEXP “[[:<:]]word[[:>:]]”;
-> 0(表示不宽容)

mysql> select “weeknights” REGEXP “^(wee|week)(knights|nights)$”;
-> 1(表示

匹配)

要想在正则表明式中动用特殊字符的文字实例,应在其日前加上2个反斜杠“”字符。MySQL剖判程序担任解释个中二个,正则表明式库担负解释另三个。比如,要想与分包特殊字符“+”的字符串“1+2”相配,在底下的正则表达式中,唯有最后叁个是无可反驳的:

mysql> SELECT ‘1+2’ REGEXP ‘1+2’;                      -> 0

mysql> SELECT ‘1+2’ REGEXP ‘1+2’;                      -> 0

mysql> SELECT ‘1+2’ REGEXP ‘1\+2’;                    -> 1

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图