SQL中的字符串正则表达式常见示例代码

 更新时间:2025年05月17日 14:44:17   作者:宇后初晴_da  
这篇文章主要介绍了SQL中字符串正则表达式常见示例的相关资料,包含元字符、转义字符等,广泛应用于表单验证、文本处理及SQL中的字符串查找替换,如邮箱、日期、手机号匹配,需要的朋友可以参考下

正则表达式的基本概念

所谓正则表达式(Regular Expression,简称regexregexp)是一种用于匹配字符串中字符组合的模式描述工具。它通过一系列特殊的字符和符号来定义一种约定俗成的规则,用于查找、匹配、替换或验证字符串中的特定内容。在表单提交验证、路由映射、文本处理等方面大放异彩,基本上所有编程语言都有特定的一套正则机制以供程序员使用。

正则表达式的基础字符

正则表达式由普通字符和特殊符号组成,一共可以分为两种大类。首先是元字符,由特殊符号组成,代表的是正则匹配中的匹配准则。转义字符通常由特殊符号\+字符组成,是某种字符表达类型的统称,当匹配内容中本身带有\时,需要再添加一个转义,例如\\

元字符

  • .:匹配任意一个字符(除了换行符)。
  • *:匹配零次或多次的字符或子模式。
  • +:匹配一次或多次的字符或子模式。
  • ?:匹配零次或一次的字符或子模式。
  • {n}:匹配重复n次的字符或子模式。
  • {n,}:匹配重复≥n次的字符或子模式。
  • {n,m}:匹配重复n到m次的字符或子模式。
  • []:匹配方括号内的任意一个字符。
  • [^]:匹配在方括号内的任意一个字符。
  • ^:表示匹配字符串以…开头。
  • $:表示匹配字符串以…结尾。
  • ():分组,用于拆解匹配的内容。
  • |:逻辑或,表示匹配多种模式中的任意一个。
  • -:当其不在[]内则就代表字符-,在[]内表示范围,例如[a-z]表示任意小写字符。

转义字符

  • \d:匹配任意数字字符(0-9)。
  • \w:匹配任意字母或数字或下划线字符(等价于 [a-zA-Z0-9_])。
  • \s:匹配任意空白字符(空格、制表符、换行符等)。
  • \b:匹配单词的开始与结束,例如\bword\b可以匹配字符串中的整个单词word,而不会混淆其他包含word的内容。
  • \D:匹配任意非数字字符。
  • \W:匹配任意非字母、数字、下划线字符(等价于 [^a-zA-Z0-9_])。
  • \S:匹配任意非空白字符。

常见的正则示例

  • 匹配电子邮件地址
\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b

解释:匹配以字母、数字、点号、下划线等开头(可出现一次或多次),后跟@,再跟转义的.,最后以域名和顶级域名(字母且至少有两个字符)结尾。

  • 匹配日期
\d{4}-\d{2}-\d{2}

解释:YYYY-MM-DD,匹配四个数字,跟-,后跟两个数字,再跟-,最后又是两个数字。

  • 匹配手机号码
^1[3-9]\d{9}$

解释:以1开头,第二位是39之间的数字,后面跟着九位数字结尾。

  • 匹配网页元素
<[^>]+>(.*)</[^>]+>

解释:<xxx>…</xxx>。

SQL中应用正则表达式

字符串查找

在SQL中若要应用正则表达式完成字符串查找功能,筛选出满足条件的记录时:

SELECT *
FROM 表名
WHERE 字符串字段 REGEXP '正则表达式';

注意:仅字符串字段支持使用REGEXP+正则语句进行查找功能。

字符串替换

在SQL中若要应用正则表达式完成字符串替换功能时:

SELECT regexp_replace(str, pattern, replace_str, occurrence)
FROM 表名;

其中:

  • str:表示需要应用正则替换的字符串表达;
  • pattern:表示正则表达式,需要带上英文引号;
  • replace_str:表示当匹配到样式后需要将其替换的新字符串表达;
  • occurrence:取值为整型常量,表示替换的程度,该值取0时替换掉所有满足正则条件的匹配子串,大于0时表示将第几个满足正则条件的匹配子串替换。

常见案例

例题: 查找有效邮箱的用户

一个有效的电子邮件具有前缀名称和域,其中:

  • 前缀名称是一个字符串,可以包含字母(大写或小写),数字,下划线 _,点 . 和/或破折号- ;
  • 前缀名称必须以字母开头;
  • 域名称为@leetcode.com 。

代码:

SELECT user_id, name, mail
FROM Users
WHERE mail REGEXP '^[a-zA-Z][a-zA-Z0-9_.-]*\\@leetcode\\.com$';

总结 

到此这篇关于SQL中字符串正则表达式常见示例代码的文章就介绍到这了,更多相关SQL字符串正则表达式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • sql 刷新视图

    sql 刷新视图

    视图会保存元数据,列,安全,以及依赖等信息,如果我们把基础表的架构更改了,并不会直接反映到视图上来;更改架构后,使用sp_refreshview存储过程刷新视图的元数据是一个好习惯;
    2009-07-07
  • SQL Server常见问题及解决方法分享

    SQL Server常见问题及解决方法分享

    这篇文章主要为大家详细介绍了SQL Server常见问题及解决方法,包括SQL Server连接问题,SQL Server日志问题,SQL Server查询很久等问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • SQL SERVER 自增列

    SQL SERVER 自增列

    判断Table是否存在自增列(Identity column)
    2009-06-06
  • 获取SqlServer存储过程定义的三种方法

    获取SqlServer存储过程定义的三种方法

    这篇文章主要介绍了获取SqlServer存储过程定义的三种方法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • SqlServer中模糊查询对于特殊字符的处理方法

    SqlServer中模糊查询对于特殊字符的处理方法

    这篇文章主要介绍了SqlServer中模糊查询对于特殊字符的处理方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02
  • SQL Server中交叉联接的用法详解

    SQL Server中交叉联接的用法详解

    这篇文章主要介绍了SQL Server中交叉联接的用法介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • SQL Server 2012 安装图解教程(附sql2012下载地址)

    SQL Server 2012 安装图解教程(附sql2012下载地址)

    在安装微软最新数据库SQL Server 2012之前,编者先确定一下安装环境:Windonws 7 SP1,32位操作系统、CPU是2.1GHz赛扬双核T3500,内存2.93GB
    2013-04-04
  • sqlserver禁止management studio的自动提交事务

    sqlserver禁止management studio的自动提交事务

    默认management studio是自动提交事务,即一个语句就一个事务,那么如何禁止其自动提交呢?下面有个不错的方法,大家可以参考下
    2014-06-06
  • SqlServer 表单查询问题及解决方法

    SqlServer 表单查询问题及解决方法

    这篇文章主要介绍了SqlServer 表单查询问题及解决方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • SQL中Exists的用法

    SQL中Exists的用法

    这篇文章主要介绍了SQL中Exists的用法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02

最新评论