iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Mysql中正则表达式Regexp常见用法及说明
  • 772
分享到

Mysql中正则表达式Regexp常见用法及说明

Mysql正则表达式Regexp常见用法Mysql Regexp用法 2022-12-12 12:12:10 772人浏览 安东尼
摘要

目录Mysql中Regexp常见用法Regexp关键字及正则表达式的常用通配符总结mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含“车友俱

mysql中Regexp常见用法

模糊匹配,包含特定字符串

# 查找content字段中包含“车友俱乐部”的记录
select * from club_content where content regexp '车友俱乐部'

# 此时的regexp与like的以下用法是等同的
select * from club_content where content like '%车友俱乐部%'

模糊匹配,以特定字符串开头

# 查找content字段中以“车友”开头的记录
select * from club_content where content regexp '^车友'

# 此时的regexp与like的以下用法是等同的
select * from club_content where content like '车友%'

模糊匹配,以特定字符串结尾

# 查找content字段中以“车友”结尾的记录
select * from club_content where content regexp '车友$'

# 此时的regexp与like的以下用法是等同的
select * from club_content where content like '%车友'

模糊匹配,或关系

# 查找content字段中包含“心得”、“分享”或“技术贴”
select * from club_content where content  REGEXP '心得|分享|技术贴'

模糊匹配,不包含单个字符

# 查找content字段中不包含“车”字、“友”字的记录
select * from club_content where content  REGEXP [^车友]

这个结果跑出来一看大吃一惊,竟然把所有记录给跑出来,这是为什么呢?

因为一旦加了这个方括号"[]",它就把里面的内容拆成单个的字符再匹配,它会逐个字符去匹配判断是不是等于“车”,或者是不是等于“友“,返回的结果是一组0、1的逻辑值。

如果想匹配不包含特定字符串,该怎么实现呢?

模糊匹配,不包含特定字符串

# 查找content字段不包含“车友”字符串的记录
select * from club_content where content not REGEXP '车友'

Regexp关键字及正则表达式的常用通配符

在Mysql中使用Regexp关键字来指定正则表达式的匹配内容。

语法:

字段 regexp ‘匹配字符’;

MySQL中使用 REGEXP 操作符来进行正则表达式匹配。根据正则表达式的规则,用来查询或者替换符合指定要求的内容。

–select <字段> from 表 where <字段> REGEXP '通配符/字符';

通配符说明例子
^匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置'^b’匹配以字母 b 开头的字符串
$匹配文本的结束字符,如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置‘st$’ 匹配以 st 结尾的字符串
.匹配除 “\n” 之外的任何单个字符。要匹配包括 ‘\n’ 在内的任何字符,请使用像 ‘[.\n]’ 的模式。‘b.t’ 匹配任何 b 和 t 之间有一个字符
|或,多匹配符链接‘z|food’ 能匹配 “z” 或 “food”。’(z|f)ood’ 则匹配 “zood” 或 “food”。
*匹配零个或多个在它前面的字符zo* 能匹配 “z” 以及 “zoo”。* 等价于{0,}
+匹配前面的字符/子表达式 1 次或多次‘ba+’ 匹配以 b 开头,后面至少紧跟一个 a;‘zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。
<字符串>匹配包含指定字符的文本‘fa’ 匹配包含‘fa’的文本
[字符集合]匹配字符集合中的任何一个字符‘[ar]’ 匹配 a 或者 r。
[^]负值字符集合; 匹配不包含在括号中的任何字符‘[^abc]’ 匹配任何不包含 a、b 或 c 的字符串
字符串{n,}n 是一个非负整数.匹配前面的字符串n 次‘e{2}’ 匹配 2 个或多个的 e, 例如:feed
字符串 {n,m}m 和 n 均为非负整数,其中n <= m。匹配前面的字符串 n至 m 次‘b{2,4}’ 匹配最少 2 个,最多 4 个,例如baby

示例:

#匹配符合要求的多个字符/字符串
--字符*和+都可以匹配多个该符号之前的字符。不同的是,,而*可以表示 0 个字符。
'--select <字段> from 表 where   <字段> REGEXP  '字符1+'; '--+结果匹配‘字符1'一次或多次
--select <字段> from 表 where   <字段> REGEXP  '^字符1*'; --匹配‘字符1' 0次或多次
#匹配指定的字符/字符串,需要匹配多个的场合,使用‘|'分号隔开。
'--select <字段> from 表 where   <字段> REGEXP  '字符1|字符2|字符3*'; 
#查询以特定字符或字符串开头的数据
'--select <字段> from 表 where   <字段> REGEXP  '^字符';
#匹配指定字符以外的字符
'--select <字段> from 表 where   <字段> REGEXP  '[^字符1~字符3]*'; 
#查询以特定字符或字符串结尾的数据
'--select <字段> from 表 where   <字段> REGEXP  '字符$';
#替代字符串中的任意一个字符,例如:a.b =acb,adb
'--select <字段> from 表 where   <字段> REGEXP  '字符1.字符2';
'#查询可以匹配指定字符串中的任意一个字符的字符串
'--select <字段> from 表 where   <字段> REGEXP  '[字符1字符2字符3]*'; 
'#查询陪陪指定集合的区间内容的数据
#[a-z]”表示从 a~z 的所有字母;“[0-9]”表示从 0~9 的所有数字;
“[a-z0-9]”表示包含所有的小写字母和数字;“[a-zA-Z]”表示匹配所有字符。
'--select <字段> from 表 where   <字段> REGEXP  '[字符1~字符3]*'; 
#使用{n,}或者{n,m}来指定字符串连续出现的次数
'--select <字段> from 表 where   <字段> REGEXP  '匹配的字符{匹配次数,}*'; 
例: --billy,silaly,tilly 
'--select  name from  namestd where name  regexp 'l{2,};
'--select <字段> from 表 where   <字段> REGEXP  '匹配的字符{匹配次数1,匹配次数2}'; 
'例:--LiMing,Lily,LiPingPing  匹配字母“i” 一至三次
'--select  name from  namestd where name  regexp 'i{1,3}; 

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

您可能感兴趣的文档:

--结束END--

本文标题: Mysql中正则表达式Regexp常见用法及说明

本文链接: https://www.lsjlt.com/news/174799.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Mysql中正则表达式Regexp常见用法及说明
    目录Mysql中Regexp常见用法Regexp关键字及正则表达式的常用通配符总结Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含“车友俱...
    99+
    2022-12-12
    Mysql正则表达式 Regexp常见用法 Mysql Regexp用法
  • mysql字符串正则表达式及说明
    目录概述正则表达式运算符正则表达式语法概述 名称描述NOT REGEXP否定的REGEXPREGEXP字符串是否匹配正则表达式RLIKE字符串是否匹配正则表达式 正则表达式是指定复杂...
    99+
    2022-11-13
  • MySQL中正则表达式(REGEXP)使用详解
    目录前言LIKE和REGEXP的区别OR进行匹配匹配范围匹配特殊字符匹配字符类匹配多个实例定位符^有两种用法附:Mysql字符串截取 和 截取字符进行查询总结前言 有时候使用MySQ...
    99+
    2022-11-13
  • MySQL中REGEXP正则表达式的使用示例
    这篇文章将为大家详细讲解有关MySQL中REGEXP正则表达式的使用示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。正则表达式描述了一组字符串。最简单的正则表达式是不含...
    99+
    2022-10-18
  • 如何在Mysql中使用Regexp正则表达式
    本篇文章给大家分享的是有关如何在Mysql中使用Regexp正则表达式,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Mysql中Regexp常...
    99+
    2022-10-18
  • Java 之正则表达式语法及常用正则表达式汇总
    正则表达式概念: 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为 regex、regexp 或 RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 正则表...
    99+
    2023-08-18
    正则表达式 java 开发语言
  • SQL正则表达式及mybatis中使用正则表达式的方法
    小编给大家分享一下SQL正则表达式及mybatis中使用正则表达式的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql...
    99+
    2022-10-18
  • Python中常见的正则表达式问题及解决方法
    Python中常见的正则表达式问题及解决方法正则表达式是一种强大的文本匹配工具,在Python中使用正则表达式可以高效地处理字符串操作。但是,由于正则表达式语法较为复杂,常常会遇到一些问题。本文将介绍一些常见的正则表达式问题,并提供相应的解...
    99+
    2023-10-22
    问题 正则表达式 解决方法
  • Shell中正则表达式及sed和awk常见问题
    目录1 正则表达式中的+、?、*分别表示什么含义?2 如何编写正则表达式匹配11位的手机号?3 简述sed定址符的作用及表示方式。4 如何使用sed提取文本中的偶数行?5 如何使用s...
    99+
    2022-11-12
  • Shell中正则表达式及sed和awk常见问题有哪些
    这篇文章主要介绍了Shell中正则表达式及sed和awk常见问题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1 正则表达式中的+、?、*分别表示什么含义?这三个字符用...
    99+
    2023-06-20
  • MySql中使用正则表达式查询的方法
    这篇文章给大家分享的是有关MySql中使用正则表达式查询的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。正则表达式常用来检索和替换那些符合魔种模式的文本。例如从一个文本文件中...
    99+
    2022-10-18
  • Python中正则表达式及其常用匹配函数有哪些
    这篇文章主要介绍Python中正则表达式及其常用匹配函数有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。/简介/Python 自1...
    99+
    2023-06-01
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作