一、正则表达式

1、使用like可以进行不确定的查询(模糊查询),然而,模糊 查询的功能有限,当需要进行更加复杂的模式匹配时,可以 使用正则表达式来完成。

2、正则表达式可以对指定的字符串与模式之间执行模式匹配。  模式可以是普通的字符串,也可以是含有特殊意义字符的字  符串。

3、MySQL中,正则表达式使用regexp或rlike关键字。二者为同 义词。

4、regexp左侧操作数为要匹配的字符串,而右侧操作数为匹配  模式。当左侧字符串能够成功匹配右侧的模式时,返回1  ( true),否则返回0( false)。

5、右侧操作数(模式)可以是简单的常量字符串,也可以含有 特殊意义的字符。当含有特殊意义字符时,可以进行功能非 常强大的匹配 。

二、正则表达式可以含有以下特殊字符:
      ^ 从字符串开头进行匹配
      $ 匹配字符串结尾
      . 匹配任意一个字符
     ? 前面的字符出现0次或1次。
      + 前面的字符出现1次或多次。

     * 前面的字符出现0次或多次。
     () 表示一个整体。
      [] 对[]内的任意一个字符进行匹配。如果含有”-”,则对字符 区间的任意字符进行匹配。

[^] 不含有[]内的所有字符或区间。
      | 匹配|分隔的任意一个字符。
     {m} 对{}前面的字符匹配m次。
     {m,n}对{}前面的字符匹配m到n次,包括边界值。

{m,}对{}前面的字符匹配m到多次。

说明:
m需要小于等于n。
,之间不能存在空格。

/*正则表达式
字符串 regexp 模式
正式表达式可以进行模式的匹配,如果左边字符串可以匹配右边
的模式,返回1(true),否则返回0(false)。
模式可以是常规的字符串,也可以含有特殊字符(可以进行复杂的匹配)。
*/
select 'abc' regexp 'ab';
select 'abc' regexp 'bc';
#^从开头进行匹配
select 'abc' regexp '^ab';
select 'abc' regexp '^bc';
#$匹配字符串末尾
select 'abc' regexp 'ab$';
select 'abc' regexp 'bc$';
#^与$联合使用
select 'abc' regexp '^abc$';
#.匹配任意一个字符
select 'abc' regexp '^a.c$';
select 'ac' regexp '^a.c$';
#?匹配前面字符0次或1次。
select 'abc' regexp '^ab?c$'
select 'ac' regexp '^ab?c$'
select 'abbc' regexp '^ab?c$'
#+匹配前面字符1次或多次。
select 'abc' regexp '^ab+c$'
select 'abbbc' regexp '^ab+c$'
select 'ac' regexp '^ab+c$'
#*匹配前面字符0次或多次
select 'ac' regexp '^ab*c$'
select 'abc' regexp '^ab*c$'
select 'abbbbc' regexp '^ab*c$'
#()表示一个整体。
select 'ac' regexp '^(ab)?c$';
select 'c' regexp '^(ab)?c$';
select 'ababc' regexp '^(ab)?c$';
select 'ababc' regexp '^(ab)+c$';
#[]对其中的任意一个字符进行匹配,仅能匹配一个字符。
select 'abc' regexp '^a[abcdefg]c$';
#仅能匹配一个字符
select 'abgc' regexp '^a[abcdefg]c$';
#[]内可以使用-表示一个区间,表示匹配区间内的任意一个字符。
#包括区间的边界。
select 'abc' regexp '^a[a-k]c$';
select 'a3c' regexp '^a[0-5]c$';
#如果[]内需要匹配],则]必须紧跟在[之后。
select 'a]c' regexp '^a[ab]c]c$'
select 'a]c' regexp '^a[]abc]c$'
#如果[]内需要匹配-,则-必须出现在[]的两端(开始或结束)。
select 'a-c' regexp '^a[a-kx]c$'
select 'a-c' regexp '^a[-akx]c$'
select 'a-c' regexp '^a[akx-]c$'
#[^] 不含有区间内的任意一个字符
select 'abdsfsdf' regexp '^[^0-9]+$'
select 'abd5sfsdf' regexp '^[^0-9]+$'
#| 匹配|分隔的任意一个字符
select 'abc' regexp '^a(b|c|d)c$'
select 'adc' regexp '^a(b|c|d)c$'
select 'abc' regexp '^a[b-d]c$'
#{m} 匹配前面的字符m次
select 'abc' regexp '^ab{3}c$'
select 'abbbc' regexp '^ab{3}c$'
#{m,n} 匹配前面的字符m次到n次,包含m与n。
select 'abc' regexp '^ab{2,5}c$'
select 'abbbc' regexp '^ab{2,5}c$'
#{m,} 匹配前面的字符m次或更多次。
select 'abc' regexp '^ab{2,}c$'
select 'abbc' regexp '^ab{2,}c$'
select 'abbbbbbc' regexp '^ab{2,}c$'
#?,*,+也可以使用{m,n}实现。
select 'abc' regexp '^ab?c$'
select 'abc' regexp '^ab{0,1}c$';
select 'abc' regexp '^ab+c$'
select 'abc' regexp '^ab{1,}c$';
select 'abc' regexp '^ab*c$'
select 'abc' regexp '^ab{0,}c$';
#{m,n} m需要小于等于n
select 'abc' regexp '^ab{1,0}c$';
#{m,n}不要含有空格
select 'abc' regexp '^ab{0 , 1}c$';

  

Mysql(四)正则表达式的更多相关文章

  1. mysql中正则表达式的使用

    mysql中正则表达式的性能要高于like,所以这里总结一下正则表达式的使用. 正则表达式的模式及其含义: 下面举例说明其用法: 建表student: create table student(id ...

  2. MYSQL使用正则表达式过滤数据

    一.正则与LIKE的区别 Mysql的正则表达式仅仅使SQL语言的一个子集,可以匹配基本的字符.字符串.例如:select * from wp_posts where post_name REGEXP ...

  3. MySql 使用正则表达式

    MySql 用where 子句对正则表达式提供了支持,允许你指定正则表达式,注意mysql仅支持多数正则表达式实现的一个很小的子集. 1.基本字符匹配: SELECT prod_name FROM p ...

  4. spring cloud: zuul(四): 正则表达式匹配其他微服务(给其他微服务加版本号)

    spring cloud: zuul(四): 正则表达式匹配其他微服务(给其他微服务加版本号) 比如我原来有,spring-boot-user微服务,后台进行迭代更新,另外其了一个微服务: sprin ...

  5. Mysql 四种事务隔离介绍以及锁机制

    还有很多不太懂,这里收集几份大佬文章“飞机票”,待我整理好了,再好好写一篇文章吧. MySQL的四种事务隔离级别 https://www.cnblogs.com/huanongying/p/70215 ...

  6. mysql四-1:单表查询

    一 单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二 关键 ...

  7. mysql四-1:单表查询

    一.单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二.关键 ...

  8. Mysql(四)-1:单表查询

    一 单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二 关键 ...

  9. Python、mysql四-1:单表查询

    一 单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二 关键 ...

随机推荐

  1. 20155334 《网络攻防》 Exp9 Web安全基础

    <网络攻防> Exp9 Web安全基础 一.实验后回答问题 SQL注入攻击原理,如何防御: 原理: 就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服 ...

  2. 总结:C# 委托的全面理解

    在说事件之前得先了解委托. 委托,外表看来和C/C++中函数指针没什么区别,但是本质上你才发现他其实就是个类!也就是说理解委托得从 这个两个方面去理解(单从一个方面去理解感觉就怪怪的呵呵!) 理解委托 ...

  3. 汇编 MOVSX与MOVZX 指令

    知识点:  MOVSX符号扩展传送  MOVZX零扩展传送 一.MOVSX与MOVZX格式 MOVSX 操作数A ,操作数B MOVZX 操作数A ,操作数B 相同点:操作数B 空间必须小于 操作 ...

  4. PostgreSQL安装和配置---Ubuntu

    PostgreSQL安装和配置---Ubuntu

  5. vue中v-if 和 v-show的区别

    简单来说,v-if 的初始化较快,但切换代价高:v-show 初始化慢,但切换成本低 1.共同点 v-if 和 v-show 都可以动态地显示DOM元素 2.区别 (1)手段: v-if 是动态的向D ...

  6. Join 和 Apply 用法全解

    在关系型数据库系统中,为了满足第三范式(3NF),需要将满足“传递依赖”的表分离成单独的表,通过Join 子句将相关表进行连接,Join子句共有三种类型:外连接,内连接,交叉连接:外连接分为:left ...

  7. C# ConcurrentBag的实现原理

    目录 一.前言 二.ConcurrentBag类 三. ConcurrentBag线程安全实现原理 1. ConcurrentBag的私有字段 2. 用于数据存储的TrehadLocalList类 3 ...

  8. 接口自动化测试框架-AIM

    最近在做公司项目的自动化接口测试,在现有几个小框架的基础上,反复研究和实践,搭建了新的测试框架.利用业余时间,把框架总结了下来. AIM框架介绍 AIM,是Automatic Interface Mo ...

  9. Word或者WPS里证件照的背景底色和像素调整

    证件照的背景底色调整和像素调整         关于证件照的背景底色自行调整,比较方便的方法是用Word或者WPS来进行调整,当然也可以利用两者相结合的方法来进行调整,下面来系统的说一下这两种方式.此 ...

  10. Hyperledger Fabric v1.1.0安装记录(国内源版)

    1. 安装虚拟机     虚拟机软件采用:VirtualBox     操作系统选择:Ubuntu 14.04     内存:4G     CPU:2核     硬盘:20G     2.(可选)更改 ...