MySQL中的正则表达式

news2024/11/16 18:03:11

目录

一.介绍

二.格式

三.操作


 

一.介绍

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

MySQL通过REGEXP关键字支持正则表达式进行字符串匹配。

二.格式

模式描述
^匹配输入字符串的开始位置。
$匹配输入字符串的结束位置。
.匹配除“\n"之外的任何单个字符。
[...]字符集合。匹配所包含的任意一个字符。例如,"[abc]'可以匹配"plain"中的'a'。
[^...]负值字符集合。匹配未包含的任意字符。例如,"[^abc]'可以匹配“plain"中的'p'。
p1lp2|p3匹配p1或p2或p3。例如,'z]food'能匹配"z”或"food"。"(zlf)ood'则匹配"zood"或"food"。
*匹配前面的子表达式零次或多次。例如,zo*能匹配"z"以及"zoo"。*等价于{0,}。
+匹配前面的子表达式一次或多次。例如,'zo+'能匹配""zo"以及"zoo",但不能匹配"z"。+等价于{1,}。
{n}n是一个非负整数。匹配确定的n次。例如,'o{2}不能匹配"Bob"中的'o',但是能匹配"food"中的两个o。
{n,m}m和n均为非负整数,其中n <= m。最少匹配n次且最多匹配m次。

三.操作

-- 正则表达式
-- 在字符串开始处进行匹配
select 'abc' regexp '^a'; -- 1
select *  from employee where  name regexp '^张'

-- $在字符串末尾开始匹配
select 'abc' regexp 'a$'; -- 0
select 'abc' regexp 'c$'; -- 1
-- . 匹配任意字符,可以匹配除了换行符之外的任意字符,任意指一至多个字符
select 'abc' regexp '.b'; -- 1
select 'abc' regexp '.c'; -- 1
select 'abc' regexp 'a.'; -- 1



-- [...]匹配括号内的任意单个字符
select 'abc' regexp '[abc]'; -- 1
select 'abc' regexp '[ab]'; -- 1
select 'abc' regexp '[ert]'; -- 0
select 'abc' regexp '[abt]'; -- 1

 -- [^...]注意^符合只有在[]内才是取反的意思,在别的地方都是表示开始处匹配
select 'abc' regexp '[^abc]'; -- 0
select 'abc' regexp '[^a]'; -- 1
select 'abc' regexp '[^ert]'; -- 1


-- a*匹配0个或多个a,包括空字符串。可以作为占位符使用.有没有指定字符都可以匹配到数据
select 'stab' regexp '.ta*b'; -- 1
select 'stb' regexp '.ta*b'; -- 1

-- a+匹配1个或者多个a,但是不包括空字符
select 'stab' regexp '.ta+b'; -- 1
select 'stb' regexp '.ta+b'; -- 0

-- a?匹配0个或者1个a
select 'stab' regexp '.ta?b'; -- 1
select 'stb' regexp '.ta?b'; -- 1
select 'staab' regexp '.ta?b'; -- 0


-- a{m}匹配m个a
SELECT 'auuuuc'REGEXP 'au{4}c'; -- 1
SELECT 'auuuuc' REGEXP 'au{3}c'; -- 0
-- a{m,} 匹配m个或者更多个a
SELECT 'auuuuc'  REGEXP 'au{3,}c'; -- 1
SELECT 'auuuuc'  REGEXP 'au{4,}c'; -- 1
SELECT 'auuuuc'  REGEXP 'au{5,}c '; -- 0
-- a{m,n}匹配m到n个a,包含m和n
SELECT ' auuuuc' REGEXP ' au{3,5}c'; -- 1
SELECT 'auuuuc' REGEXP 'au{4,5}c'; -- 1
SELECT ' auuuuc' REGEXP 'au{5,10}c'; -- 0
-- (abc) abc作为一个序列匹配,不用括号括起来都是用单个字符去匹配,如果要把多个字符作为一个整体去匹配就需要用到括号,所以括号适合上面的所有情况。
SELECT 'xababy ' REGEXP 'x(abab)y ' ; -- 1
SELECT 'xababy' REGEXP 'x(ab)*y ' ; -- 1
SELECT 'xababy 'REGEXP 'x(ab)[1,2]y '; -- 1

-- al |a2匹配a1或者a2,
SELECT 'a' REGEXP 'a|b' ;-- 1
SELECT 'b' REGEXP 'a|b' ;-- 1
SELECT 'b' REGEXP '^(a|b)';-- 1
SELECT 'a' REGEXP '^(a|b)';-- 1
SELECT 'c' REGEXP '^(a|b)';-- 0

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/186611.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5G小区选择重选参数的设置

学习大唐杯的过程中的一些总结。 目录 前言 一、S准则 二、R准则 三、关于频点优先级 总结 前言 5G参数总体的设计思想是在总体成本的控制下&#xff0c;满足覆盖范围和容量的同时&#xff0c;达到5G各个小区之间正确进行通信。 一、S准则 在后续介绍的频点优先级中&#xff0…

【多任务】任务损失/梯度优化策略合集

本文分享如何从loss和gradient方面,优化多任务模型,缓解负迁移或跷跷板的问题。不足之处,还望批评指正。 背景 最近工作中,有使用到多任务模型,但实际使用时,会面临负迁移、跷跷板等现象。 除了从模型角度优化,这里介绍从loss和gradient方面的优化

SpringBoot创建接口

目录 一、创建Spring Boot Project (一)配置Spring Boot (二)配置数据库连接&#xff0c;并启动tomcat 二、新建测试网页——这一步可以忽略&#xff0c;主要是测试配置是否成功 1.新建一个页面 2.创建TestController类 3.启动SpringbootpracticeApplication类——sprin…

【Linux】makemakefile

【Linux】make & makefile 文章目录【Linux】make & makefile1、makefile文件2、make命令3、make原理规则4、.PHONY5、编译与否的判断法1、makefile文件 makefile实际上是一个文件&#xff0c;配置文件 充当Linux上的工程管理工具&#xff0c;可以实现自动化编译 mak…

transformer库的思想

transformer库建立思路 (1) Model类: 如BertModel , 目前收录有超过30个PyTorch模型或Keras模型; (2) Configuration类: 如BertConfig , 用于存储搭建模型的参数; (3) Tokenizer类: 如BertTokenizer , 用于存储分词词汇表以及编码方式; 使用from_pretrained()和save_pretraine…

区块链知识系列 - 系统学习EVM(二)

特点 EVM出于所谓运算速度和效率方面考虑&#xff0c;采用了非主流的256bit整数。不支持浮点数缺乏标准库支持,例如字符串拼接、切割、查找等等都需要开发者自己实现给合约打补丁或是部分升级合约代码在EVM中是完全不可能的 存储 Code code 部署合约时储存 data 字段也就是合…

08-linux网络管理-iptables扩展模块

文章目录1. 概述2. icmp 模块2.1 示例&#xff08;禁止本机ping其它主机&#xff09;2.2 示例&#xff08;其他主机ping本机&#xff09;2.3 --icmp-type 说明3. iprange模块4. multiport 模块5. state 模块5.1 语法5.2 完整示例6. limit模块6.1 语法6.2 完整示例7. connlimit7…

[2019红帽杯]easyRE1题解

迷蒙马背眠&#xff0c;月随残梦天边远&#xff0c;淡淡起茶烟。 ——松尾芭蕉 目录 1.查壳 2.拖入64位IDA&#xff0c;找到主函数 3.静态分析主函数 4.wp 1.查壳 ELF文件&#xff0c;64bit 2.拖入64位IDA&#xff0c;找到主函数 没有标明main函数&#xff0c;我们打开str…

OSCP_VULHUB COVFEFE: 1

文章目录前言信息收集渗透过程权限提升前言 靶机下载地址&#xff1a;https://www.vulnhub.com/entry/covfefe-1,199/ 攻击机&#xff1a;kali&#xff08;192.168.132.139&#xff09; 靶机&#xff1a;covfefe&#xff08;192.168.132.146&#xff09; 下载好靶机之后直接使…

vivo 超大规模消息中间件实践之路

作者&#xff1a;vivo 互联网存储技术团队-Luo Mingbo、中间件团队- Liu Runyun 本文根据“2022 vivo开发者大会"现场演讲内容整理而成。 本文主要介绍超大数据规模场景下分布式消息中间件在vivo的应用实践。 在线业务侧主要从RocketMQ集群部署架构、平台系统架构、日常运…

EMC基础:电容的频率特性

本文将对其中使用电容和电感降噪的对策进行介绍&#xff0c;这也可以称为“噪声对策的基础”。在这里使用简单的四元件模型。如果要进一步表达高频谐振时&#xff0c;可能需要更多的元件模型。 电容的频率特性 探讨利用电容器来降低噪声时&#xff0c;充分了解电容器的特性是…

设计模式——软件设计原则

目录 3.软件设计原则 3.1 开闭原则 3.2 里氏代换原则 3.3 依赖倒转原则 3.4 接口隔离原则 3.5 迪米特法则 3.6 合成复用原则 3.软件设计原则 在软件开发中&#xff0c;为了提高软件系统的可维护性和可复用性&#xff0c;增加软件的可扩展性和灵活性&#xff0c;程序员要…

8、Servlet——Servlet生命周期、Servlet特性

目录 一、Servlet生命周期 1、生命周期的四个阶段 1.1 实例化 1.2 初始化 1.3 服务 1.4 销毁 2、Servlet执行流程 3、代码演示 二、 Servlet特性 1、线程安全问题 2、如何保证线程安全 一、Servlet生命周期 1、生命周期的四个阶段 1.1 实例化 当用户第一次访问Ser…

flutter裁剪三角形,并设置三角形最长边阴影(类似钉钉登录页右上角图标样式)

需求 需要使用flutter创建类似钉钉登录页右上角图表样式 过程 图标 图标直接从阿里巴巴图标库中下载png文件&#xff0c;并设置相应颜色 三角形阴影 样式的主要难点在三角形及三角形阴影这里 1、三角形的裁剪有两种方法&#xff1a; 第一种是 使用边框实现三角形 参考博客…

springboot自动加载--自定义启动器

创建自定义启动器 0、项目总览 1、创建项目&#xff0c;引入依赖 创建项目 spring-boot-jdbc-starter&#xff0c;引入依赖&#xff0c;pom文件如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apa…

b站黑马Vue2后台管理项目笔记——(1)登录功能

说明&#xff1a; 此项目中使用的是本地SQL数据库&#xff0c;Vue2。 其他功能请见本人后续的其他相关文章。 本文内容实现的最终效果如下图&#xff1a; 目录 一&#xff0e;登录功能的实现 1.登录页面的布局&#xff1a; &#xff08;1&#xff09;查看当前工作区是否干净…

读锁应该插队吗?什么是锁的升降级?

背景 ReentrantReadWriteLock可以设置公平或非公平&#xff0c;为什么&#xff1f; 读锁插队策略 每次获取响应锁之前都要检查能否获取 readerShouldBlockwriterShouldBlock 公平锁 final boolean writerShouldBlock() {return hasQueuedPredecessors(); } final boolean …

打造智慧工地,低代码平台助力基建行业全链路数字化升级

编者按&#xff1a;基建行业数字化转型需求迫切&#xff0c;低代码平台有助于加快数字化转型速度&#xff0c;赋能建筑工程企业升级。本文分析了低代码在基建行业中的应用价值&#xff0c;并指出基建行业对于低代码平台的需求&#xff0c;最后通过相关案例的展示了低代码平台在…

低代码平台解读:“低代码+PaaS”的技术创新实践

数字化转型已经成为必然趋势&#xff0c;几乎所有传统行业都喊出了数字化转型的口号。但在数字化转型中&#xff0c;很多企业面临着成本高、周期长的难题。低代码是其中一种破解难题的方式&#xff0c;如今的低代码已经是企业数字化的核心引擎。 低代码平台越来越多&#xff0…

数据结构——链表(五)

数据结构 文章目录数据结构前言一、什么是链表二、实现单链表1.单链表的结构2.单链表的初始化3.单链表的插入4.遍历链表5.链表长度总结前言 接下来学习一下链表&#xff0c;链表比数组用的更多。 一、什么是链表 概念&#xff1a;链表是一种物理存储结构上非连续、非顺序的存…