文章目录

  • 一. 基本介绍
  • 二. ^的用法
  • 三. $的用法
  • 四 . 的用法
  • 五. […]和[^…]的用法
  • 六. *和+的用法
  • 七. ?的用法
  • 八. | 的用法
  • 九. {}的用法

一. 基本介绍

  正则表达式(regularexpression)描述了一种字符串匹配的规则,正则表达式本身就是一个字符串,使用这个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串。在开发中,正则表达式通常被用来检索、替换那些符合某个规则的文本。
  MySQL通过REGEXP关键字支持正则表达式进行字符串匹配。

二. ^的用法

^是在字符串的前面开始匹配,可以理解为匹配前缀

^ 在字符串开始处进行匹配

select  'abc' regexp '^a';

^ 其实就是匹配开头的子符 因为abc是以a开头,所以它的结果是1


当然如果我们想要匹配前缀字符串的话,则需要加上括号();

select 'abc' regexp '^(ab)';
select 'abc' regexp '^(ac)';


abc的前缀是ac,所以第一个返回为1,第二个范围为0。

注意:一个符号 ^ 只能对应一个字符进行 ^ 方式的匹配,如果要将一个字符串进行^方式匹配,则要将其看作一个整体,我们用括号()来将其表示为一个整体,包括后面的表达式也是如此。

三. $的用法

$其实就是在字符的末尾出开始匹配,可以理解为匹配后缀

$ 在字符串末尾开始匹配

select 'abc' regexp 'a$';
select 'abc' regexp 'c$';

$的作用是匹配尾部的字符 因为abc是以c结尾,所以第一个结果为0,第二个为1

同样,如果我们的后缀是一个字符串,则需要用括号。

select 'abc' regexp '(bc)$';
select 'abc' regexp '(ac)$';


abc的后缀是bc,所以第一个结果为1,第二个为0。

四 . 的用法

.可以匹配除\n以外的任何字符串,可以理解为可以抵消掉任意字符,例如:我们用 ’.b’对
’abc’行匹配,.匹配了第一个字符a,而b刚好匹配,所以它的结果是真。

举例:
.匹配任意字符串

select 'abc' regexp '.b';
select 'abc' regexp '.c';
select 'abc' regexp '.a';

五. […]和[^…]的用法

[…]的作用是:
  匹配包含的任意一个字符,就是说只要能匹配到[]中的一个字符就行。

[…] 匹配括号中的任意单个字符

select 'abc' regexp '[xyz]';
select 'abc' regexp '[xaz]';


[^…]的作用是:
  匹配为被包含的任意字符,就是指,匹配含有[]中没有的字符。例如:[^abc]可以匹配abcd中的d。

同时我们要注意,^只有在[]中的时候才有取反的意思。

select 'a' regexp '[^abc]';
select 'x' regexp '[^abc]';
select 'abc' regexp '[^a]';

六. *和+的用法

’ * '的用法官方的描述我觉得有点歧义,最主要的歧义还是因为他对+的描述。

这里说 * 是匹配0次或多次,而+是匹配一次或多次,这样描述很容易让人认为,他是将1次和多次区分开来,而且我们在学数学的概率论时也会将1次和多次区分开来,所以就肯让人理解且 * 是匹配0和多次,如果匹配到了1次,则不行。
可实际上却不是如此,最后查看别人的博客,才发现,它的意思是0到n次,也就是0次以上。

用法

select 'stab'regexp '[.ta*b]';
select 'stb'regexp '[.ta*b]';
select ''regexp '[.ta*b]';
select ''regexp '[a*]';


+的用法:

select 'stab' regexp '.ta+b';
select 'stb' regexp '.ta+b';

七. ?的用法

?的作用就是匹配0个或1个则为真,其他情况则为假。

举例:

select 'stb' regexp '.ta?b';
select 'stab' regexp '.ta?b';
select 'staab' regexp '.ta?b';

八. | 的用法

| 的作用就是匹配到了其中一个即可,例如a|b,这要目标字符串中有a,b其中一个即可。

select 'a' regexp 'a|b';
select 'b' regexp 'a|b';
select 'b' regexp '^(a|b)';
select 'a' regexp '^(a|b)';
select 'c' regexp '^(a|b)';

九. {}的用法

{}有两种形式:

  1. {n}表示匹配某个字符出现了n次
  2. {n,m}表示某个字符出现了n到m次

举例:
u{n} 匹配n个u

select 'auuuuuuub' regexp 'u{7}';
select 'auuuuuuub' regexp 'au{7}b';


u{n,m} 匹配n到m个u

select 'auuuub' regexp 'au{3,5}b';
select 'auuuuub' regexp 'au{3,5}b';
select 'auuuuuub' regexp 'au{3,5}b';

MySQL数据库基本操作-正则表达式相关推荐

  1. [JSP暑假实训] 三.MySQL数据库基本操作及Servlet网站连接显示数据库信息

    本系列文章是作者暑假给学生进行实训分享的笔记,主要介绍MyEclipse环境下JSP网站开发,包括JAVA基础.网页布局.数据库基础.Servlet.前端后台数据库交互.DAO等知识. 前一篇文章讲解 ...

  2. mysql数据库基本操作总结与归纳

    mysql数据库基本操作总结与归纳 登录命令 mysql -u 用户名 -p 密码 列如: [root@localhost ~]# mysql -u root -p [root@localhost ~ ...

  3. 1Python全栈之路系列之MySQL数据库基本操作

    Python全栈之路系列之MySQL数据库基本操作 MySQL数据库介绍 MySQL是一种快速易用的关系型数据库管理系统(RDBMS),很多企业都在使用它来构建自己的数据库. MySQL由一家瑞典公司 ...

  4. MYSQL数据库基本操作——DML

    MYSQL数据库基本操作--DML 何为DML 三种基本操作 何为DML DML是数据操作语言,Data Manipulation Language.是对表的数据记录进行更新操作的,包括插入inser ...

  5. Mysql数据库基本操作(七)多表查询-子查询,表自身关联查询

    多表查询还有前面的两块内容--内连接查询,外连接查询,希望看到这篇博客的朋友先去看看我的"Mysql数据库"专栏中Mysql数据库基本操作(六)多表查询-内连接,外连接这一章博客, ...

  6. Mysql数据库基本操作(六)多表查询-内连接查询,外连接查询

    数据准备 use mydb3 ; --创建部门表 create table if not exists dept3 ( deptno varchar (20) primary key , --部门号 ...

  7. MySQL数据库基本操作总结(不断更新中......)

    1.登录mysql数据库: mysql -u root -p 输入密码 2.登出mysql数据库: \q 3.关系型数据库管理系统(RDBMS)来存储和管理的大数据量.所谓的关系型数据库,是建立在关系 ...

  8. MySQL数据库——基本操作

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.数据库基本操作 (一).登陆数据库 1.交互登陆 mysql -u root -p 2.免交互登陆 mysql - ...

  9. MySQL 3:MySQL数据库基本操作 DQL

    数据库管理系统的一个重要功能是数据查询.数据查询不应简单地返回数据库中存储的数据,还应根据需要对数据进行过滤,确定数据的显示格式.MySQL 提供了强大而灵活的语句来实现这些操作.MySQL数据库使用 ...

最新文章

  1. 关于java文件下载文件名乱码问题解决方案
  2. PHP——获取上传文件的后缀名
  3. java排序算法总结_排序算法总结及Java实现
  4. MVC4 WebAPI(一)
  5. 深度学习的实用层面 —— 1.1 训练/开发/测试集
  6. 转: maven进阶:一个多模块项目
  7. 布同:后台开发入职四年的经历和体会
  8. 互联网小团队创业 第三集 创业准备易犯的错误 汪华
  9. 将ClearCase的客户端编码设置为UTF-8
  10. word文字上下间距怎么调_word文档里的文字上下左右之间的间距如何调整?
  11. JAva继承编写自行车例子,java – Freemarker中的继承/实例检查
  12. [附源码]java毕业设计网吧购物系统
  13. Python从入门到实战,我觉着拥有这三本书很有必要
  14. 传统企业如何做数字化转型?弄懂这3大底层逻辑你就懂了
  15. win10pin不可用进不去系统_人脸识别门禁控制系统+安检通道
  16. 润物细无声之千分之一
  17. 图象淡入淡出(VB6)
  18. Cozmo人工智能机器人SDK使用笔记(1)-基础部分basics
  19. 人工智能安全标准化白皮书(2019版)笔记
  20. 单调函数必有反函数,但为何有反函数的不一定是单调函数

热门文章

  1. python创建文件夹名称大全好听_python批量创建指定名称的文件夹
  2. arduino小车_10种Arduino IDE替代品开始编程
  3. 手机运行慢可以刷机吗_小米手机内存小速度慢?刷机不行另有三个方法
  4. 微信小程序授权登陆判断+证件照换底色UI设计(第三周)
  5. Django 小记 FileResponse 实现文件下载
  6. 攀岩时代:HMS Core 6.0与移动开发之路
  7. H5动效的常见制作手法 - 腾讯ISUX
  8. Magic ship
  9. Learn day6 模块pickle\json\random\os\zipfile\面对对象(类的封装 操作 __init__)
  10. js阻止冒泡事件和默认事件