MySQL数据库基本操作-正则表达式
文章目录
- 一. 基本介绍
- 二. ^的用法
- 三. $的用法
- 四 . 的用法
- 五. […]和[^…]的用法
- 六. *和+的用法
- 七. ?的用法
- 八. | 的用法
- 九. {}的用法
一. 基本介绍
正则表达式(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)';
九. {}的用法
{}有两种形式:
- {n}表示匹配某个字符出现了n次
- {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数据库基本操作-正则表达式相关推荐
- [JSP暑假实训] 三.MySQL数据库基本操作及Servlet网站连接显示数据库信息
本系列文章是作者暑假给学生进行实训分享的笔记,主要介绍MyEclipse环境下JSP网站开发,包括JAVA基础.网页布局.数据库基础.Servlet.前端后台数据库交互.DAO等知识. 前一篇文章讲解 ...
- mysql数据库基本操作总结与归纳
mysql数据库基本操作总结与归纳 登录命令 mysql -u 用户名 -p 密码 列如: [root@localhost ~]# mysql -u root -p [root@localhost ~ ...
- 1Python全栈之路系列之MySQL数据库基本操作
Python全栈之路系列之MySQL数据库基本操作 MySQL数据库介绍 MySQL是一种快速易用的关系型数据库管理系统(RDBMS),很多企业都在使用它来构建自己的数据库. MySQL由一家瑞典公司 ...
- MYSQL数据库基本操作——DML
MYSQL数据库基本操作--DML 何为DML 三种基本操作 何为DML DML是数据操作语言,Data Manipulation Language.是对表的数据记录进行更新操作的,包括插入inser ...
- Mysql数据库基本操作(七)多表查询-子查询,表自身关联查询
多表查询还有前面的两块内容--内连接查询,外连接查询,希望看到这篇博客的朋友先去看看我的"Mysql数据库"专栏中Mysql数据库基本操作(六)多表查询-内连接,外连接这一章博客, ...
- Mysql数据库基本操作(六)多表查询-内连接查询,外连接查询
数据准备 use mydb3 ; --创建部门表 create table if not exists dept3 ( deptno varchar (20) primary key , --部门号 ...
- MySQL数据库基本操作总结(不断更新中......)
1.登录mysql数据库: mysql -u root -p 输入密码 2.登出mysql数据库: \q 3.关系型数据库管理系统(RDBMS)来存储和管理的大数据量.所谓的关系型数据库,是建立在关系 ...
- MySQL数据库——基本操作
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.数据库基本操作 (一).登陆数据库 1.交互登陆 mysql -u root -p 2.免交互登陆 mysql - ...
- MySQL 3:MySQL数据库基本操作 DQL
数据库管理系统的一个重要功能是数据查询.数据查询不应简单地返回数据库中存储的数据,还应根据需要对数据进行过滤,确定数据的显示格式.MySQL 提供了强大而灵活的语句来实现这些操作.MySQL数据库使用 ...
最新文章
- 关于java文件下载文件名乱码问题解决方案
- PHP——获取上传文件的后缀名
- java排序算法总结_排序算法总结及Java实现
- MVC4 WebAPI(一)
- 深度学习的实用层面 —— 1.1 训练/开发/测试集
- 转: maven进阶:一个多模块项目
- 布同:后台开发入职四年的经历和体会
- 互联网小团队创业 第三集 创业准备易犯的错误 汪华
- 将ClearCase的客户端编码设置为UTF-8
- word文字上下间距怎么调_word文档里的文字上下左右之间的间距如何调整?
- JAva继承编写自行车例子,java – Freemarker中的继承/实例检查
- [附源码]java毕业设计网吧购物系统
- Python从入门到实战,我觉着拥有这三本书很有必要
- 传统企业如何做数字化转型?弄懂这3大底层逻辑你就懂了
- win10pin不可用进不去系统_人脸识别门禁控制系统+安检通道
- 润物细无声之千分之一
- 图象淡入淡出(VB6)
- Cozmo人工智能机器人SDK使用笔记(1)-基础部分basics
- 人工智能安全标准化白皮书(2019版)笔记
- 单调函数必有反函数,但为何有反函数的不一定是单调函数
热门文章
- python创建文件夹名称大全好听_python批量创建指定名称的文件夹
- arduino小车_10种Arduino IDE替代品开始编程
- 手机运行慢可以刷机吗_小米手机内存小速度慢?刷机不行另有三个方法
- 微信小程序授权登陆判断+证件照换底色UI设计(第三周)
- Django 小记 FileResponse 实现文件下载
- 攀岩时代:HMS Core 6.0与移动开发之路
- H5动效的常见制作手法 - 腾讯ISUX
- Magic ship
- Learn day6 模块pickle\json\random\os\zipfile\面对对象(类的封装 操作 __init__)
- js阻止冒泡事件和默认事件