前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >mysql 必知必会整理—sql 正则表达[五]

mysql 必知必会整理—sql 正则表达[五]

作者头像
用户4268038
修改于 2021-10-08 07:32:41
修改于 2021-10-08 07:32:41
1.3K00
代码可运行
举报
文章被收录于专栏:stcnbstcnb
运行总次数:0
代码可运行

前言

简单整理一下sql 正则表达式。

正文

正则表达式是用来匹配文本的特殊的串(字符集合)。如果你想从一个文本文件中提取电话号码,可以使用正则表达式。如果你需要查找名字中间有数字的所有文件,可以使用一个正则表达式。如果你想在一个文本块中找到所有重复的单词,可以使用一个正则表达式。

如果你想替换一个页面中的所有URL为这些URL的实际HTML链接,也可以使用一个正则表达式(对于最后这个例子,或者是两个正则表达式)。

正则表达式用正则表达式语言来建立,正则表达式语言是用来完成刚讨论的所有工作以及更多工作的一种特殊语言。与任意语言一样,正则表达式具有你必须学习的特殊的语法和指令。

下面进行举例:

上述通过正则表达查找出product name包含1000的字符。

那么如果包含 1000,2000

注:里面只有1000和 2000。

上面中查找出包含1000或者包含任意+000的,那么是否能有和like 一样的以什么开头的呢?例如:like '1000%'

在正则中也是有的,如"^" 是以什么什么开头,"$"是以什么什么结尾。

匹配不区分大小写 MySQL中的正则表达式匹配(自版本3.23.4后)不区分大小写(即,大写和小写都匹配)。为区分大小写,可使用BINARY关键字,如WHERE prod_name REGEXP BINARY 'JetPack .000'。

上面通过".000" 匹配了里面有1000或者2000的,那么是否有其他方式?

可以通过这样的|来匹配:

匹配任何单一字符。但是,如果你只想匹配特定的字符,怎么办?可通过指定一组用[和]括起来的字符来完成,如下所示:

同样的,那么是否可以使用|的方式来匹配呢?

可以看到是不行的,为啥不行呢?这个问题其实也是比较简单的,因为里面的是1 或者2或者 3Ton,所以这种不如[]来的方便,且不容易出错。

同样^ 可以表示以什么什么开头,同意如果在[]中,那么表达的意思是否定的意思。

里面这个框框就表示了除了123外的其他字符。

集合可用来定义要匹配的一个或多个字符。例如,下面的集合将匹配数字0到9:

范围不限于完整的集合,[1-3]和[6-9]也是合法的范围。此外,范围不一定只是数值的,[a-z]匹配任意字母字符。

下面介绍一下匹配特殊字符:

请问,如果你需要匹配这些字符,应该怎么办呢?例如,如果要找出包含.字符的值,怎样搜索?请看下面的例子:

这个例子是错误的,因为.表示任意字符,需要这样写:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select *
from products
where prod_name REGEXP '\\.'

使用了\进行转义。

匹配字符类:

存在找出你自己经常使用的数字、所有字母字符或所有数字字母字符等的匹配。为更方便工作,可以使用预定义的字符集,称为字符类(character class)。

上面这个不需要背诵,只需要用的时候查看一下即可。

匹配多个实例:

目前为止使用的所有正则表达式都试图匹配单次出现。如果存在一个匹配,该行被检索出来,如果不存在,检索不出任何行。但有时需要对匹配的数目进行更强的控制。例如,你可能需要寻找所有的数,不管数中包含多少数字,或者你可能想寻找一个单词并且还能够适应一个尾随的s(如果存在),等等。

定位符:

目前为止的所有例子都是匹配一个串中任意位置的文本。为了匹配特定位置的文本.

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用MySQL正则表达式 __MySQL必知必会
正则表达式作用是匹配方本,将一个模式(正则表达式)与一个文本串进行比较。 MySQL用WHERE子句对正则表达式提供了初步的支持,允许你指定用正则表达式过滤SELECT检索出的数据。 MySQL仅支持多数正则表达式实现的一个很小的子集。 ---------------------- 9.2.1 基本字符匹配 REGEXP后所跟的东西作为正则表达式处理。 SELECT prod_name FROM products WHERE prod_name REGEXP '1000' ORDER BY prod_na
wangxl
2018/03/08
1K0
mysql 正则表达式
MySQL用WHERE子句对正则表达式提供了初步的支持,允许你指定用正则表达式过滤SELECT检索出的数据。
week
2018/08/27
8480
Mysql 必知必会(一)
select prod_price,prod_name from products where prod_price = 2.50;
Jacob丶
2020/08/05
2.7K0
MySQL WHERE子句内使用正则表达式搜索
正则表达式之初见 下面的语法检索列prod_name包含文本1000的所有行 SELECT * FROM products WHERE prod_name REGEXP '1000'; 使用正则
秋白
2018/05/24
1.4K0
正则表达式:(mysql)
SELECT prod_name FROM products WHERE prod_name REGEXP ‘1000’
后端码匠
2019/09/02
1.2K0
正则表达式:(mysql)
MySQL(三)用正则表达式搜索
正则表达式是用来匹配文本的特殊的串(字符集合),将一个模式(正则表达式)与一个文本串进行比较;
allsmallpig
2021/02/25
9920
MySQL必知必会汇总
https://www.cnblogs.com/xbhog/p/13550579.html
xbhog
2021/11/15
1K0
MySQL必知必会笔记(1)
任意两行都不具有相同的主键值; 每个行都必须具有一个主键值(主键列不允许为NULL) 外键(foreign key) 外键为某个表(子表)中的一列,它是另一个表(父表)的主键值,建立起两个表之间的关系。
卢衍飞
2023/02/16
1.7K0
正则表达式必知必会 - 使用元字符
        元字符是一些在正则表达式里有着特殊含义的字符。英文句号 . 是一个元字符,它可以用来匹配任意单个字符。类似地,左方括号 [ 也是一个元字符,它标志着一个字符集合的开始。因为元字符在正则表达式里有着特殊的含义,所以这些字符就无法用来代表它们本身。例如不能使用 [ 来匹配 [ 本身,也不能使用 . 来匹配 . 本身。来看一个例子,用一个正则表达式去匹配一个包含 [ 和 ] 字符的 JavaScript 数组。
用户1148526
2023/10/14
2960
正则表达式
正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。
为为为什么
2022/08/06
8070
正则表达式必知必会 - 匹配单个字符
        my 也是静态文本,它在原始文本里找到了两个匹配结果,出现位置分别是第 8 个字符开始和第 37 个字符开始。
用户1148526
2023/10/14
2830
正则表达式来了,Excel中的正则表达式匹配示例
当需要在单元格区域中找到某个值时,可以使用MATCH函数。在单元格中查找特定字符串时,FIND函数和SEARCH函数非常方便。如何知道单元格中是否包含与给定模式匹配的信息?显然,可以使用正则表达式。
fanjy
2021/11/10
22.3K0
正则表达式来了,Excel中的正则表达式匹配示例
正则表达式必知必会 - 匹配一组字符
        这里使用的正则表达式以 [ns] 开头,这个集合将匹配字符 n 或 s。[ 和 ] 不匹配任何字符,它们只负责定义一个字符集合。接下来,正则表达式里的普通字符 a 匹配字符 a ,. 匹配一个任意字符,\\. 匹配 . 字符本身,普通字符 xls 匹配字符串 xls。从结果上看,这个模式只匹配了 3 个文件名,与预期一致。
用户1148526
2023/10/14
2660
Java 正则表达式
为让大家对正则表达式底层实现有一个直观的映象,给大家举个实例给你一段字符串(文本),请找出所有四个数字连在一起的子串,比如:应该找到19981999 3443 9889>分析底层实现RegTheory.java
用户9615083
2022/12/25
1.1K0
Java 正则表达式
正则表达式入门(一)
  工作经常会遇到字符匹配问题,简单的一般通过语言本身提供的函数,即可解决。偶尔遇到复杂的,会想到使用正则表达式。但是由于正则表达式不精通,不会使用复杂的表达式,就显得很呆。
_一级菜鸟
2022/04/28
4500
正则表达式入门(一)
Oracle中的正则表达式(及函数)详解
在介绍函数前,这里先说明一下Oracle中正则表达式运算符及其描述。 如果不知道他们有什么用,或者也不知道描述说的是什么,没关系,可以先看后面的介绍,就知道他们的含义了。
一觉睡到小时候
2019/07/03
21.3K0
Oracle中的正则表达式(及函数)详解
MySQL中的通配符与正则表达式
为在搜索子句中使用通配符,必须使用LIKE操作符。LIKE指示MySQL,后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较。
数据STUDIO
2021/06/24
1.6K0
linux 正则表达式详解
以下内容均总结自鸟哥私房菜这本书,如想详细了解,请参考该书以及其它相关资料。学习下面基础正则表达式之前请先简单了解一下grep的用法。
我是李超人
2020/08/20
1.8K0
MySQL 教程上
MySQL 中使用 REGEXP 或 NOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。
acc8226
2022/05/17
3.5K0
字符串之正则表达式
授人以鱼不如授人以渔,大家在编程的时候总会遇到要查找某些复杂规则的字符串,例如在 linux 系统中,需要对多个文件里的某段代码进行替换,你是不是还在每个文件打开逐一目标替换?如果你也有这样的困惑那么正则表达式就是你必须会的技能。
C语言与CPP编程
2021/07/02
3.3K0
字符串之正则表达式
相关推荐
使用MySQL正则表达式 __MySQL必知必会
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档