澳门新浦京娱乐游戏MySQL正则表达式的描述

正则表明式

正则表达式(regex卡塔尔是概念复杂查询的二个精锐的工具。
  这里是八个简约的资料,它忽视了有的详实的音讯。
  正则表达式定义了三个字符串的准绳。最轻松易行的正则表明式不分包别的保留字。举例,正则表明式hello只和字符串“hello”相称。
  日常的正则表明式使用了好几特殊的组织,所以它能匹配更加的多的字符串。举例,正则表明式hello|word既可以相配字符串“hello”也能匹配字符串
“word”。举叁个更目不暇接一点的例证,正则表明式B[an]*s能够匹配字符串“Bananas”、“Baaaaas”
、“Bs”以致任何任何以B开头以s结尾的字符串,中间能够回顾专擅个a和私下个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(包涵空串State of Qatar
  mysql> select “Ban” REGEXP “^Ba*n”; -> 1(表示卓越)
  mysql> select “Baaan” REGEXP “^Ba*n”; -> 1(表示非常)
  mysql> select “Bn” REGEXP “^Ba*n”; -> 1(表示非常)
  a+
  相配大肆多个a(不包蕴空串State of Qatar
  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(表示相当)
  {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|apaState of Qatar$”; -> 1(表示极度)

{1}

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

{2,3}

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

那是一个更完美的秘诀,它能够兑现前边好两种保留字的意义

(abc)*

a*

合营大肆多个abc(满含空串State of Qatar

能够写成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的字符。四个其余字符之间的“-”字符构成二个限量,与从首个字符最早到第三个字符之间的富有字符相配。譬喻,[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、alpha、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地图