资源描述:
《MySQL查询正则表达式》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、正则表达式(regex)是定义复杂查询的一个强有力的工具。这里是一个简单的资料,它忽略了一些详细的信息。 正则表达式定义了一个字符串的规则。最简单的正则表达式不包含任何保留字。例如,正则表达式hello只和字符串“hello”匹配。 一般的正则表达式使用了某些特殊的结构,所以它能匹配更多的字符串。例如,正则表达式hello
2、word既能匹配字符串“hello”也能匹配字符串“word”。举一个更复杂一点的例子,正则表达式B[an]*s可以匹配字符串“Bananas”、“Baaaaas”、“Bs”以及其他任何以B开头以s结尾的字符串,中间可以包括任意个a和任意个
3、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
4、"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?匹配一个或零个amysql>select"Bn"
5、REGEXP"^Ba?n";->1(表示匹配)mysql>select"Ban"REGEXP"^Ba?n";->1(表示匹配)mysql>select"Baan"REGEXP"^Ba?n";->0(表示不匹配)de
6、abc匹配de或abcmysql>select"pi"REGEXP"pi
7、apa";->1(表示匹配)mysql>select"axe"REGEXP"pi
8、apa";->0(表示不匹配)mysql>select"apa"REGEXP"pi
9、apa";->1(表示匹配)mysql>select"apa"REGEXP"^(pi
10、apa)$";->1(表示匹配)
11、mysql>select"pi"REGEXP"^(pi
12、apa)$";->1(表示匹配)mysql>select"pix"REGEXP"^(pi
13、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+可
14、以写成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>sel
15、ect"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(表示不匹配)