首页 游戏 软件 资讯 排行榜 专题
首页
数据库
SQL中的字符串正则表达式常见示例代码

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

热心网友
45
转载
2026-04-19

正则表达式的基本概念

正则表达式(Regular Expression,常缩写为regexregexp)是程序员处理文本的利器。它通过一套精炼的符号规则,精准描述和匹配字符串中的字符组合模式。无论是表单验证、数据清洗、日志分析,还是URL路由匹配,正则表达式都扮演着核心角色。几乎所有主流编程语言都内置了正则支持,这充分证明了其在文本处理领域的通用性与不可替代性。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

正则表达式的基础字符

理解正则表达式的关键在于掌握其字符体系。它主要由普通字符和具有特殊功能的符号构成。其中,元字符是定义匹配规则的核心符号,而转义字符则以反斜杠\开头,用于代表一类特定的字符。一个实用技巧是:若需匹配文本中实际的反斜杠,需使用\\进行转义。

元字符

以下是构建正则模式的核心元字符,它们是实现精准匹配的基石:

  • .:匹配除换行符外的任意单个字符。
  • *:匹配前一个字符或子模式零次或多次(贪婪匹配)。
  • +:匹配前一个字符或子模式一次或多次
  • ?:匹配前一个字符或子模式零次或一次,表示可选。
  • {n}:精确匹配前一个字符连续出现n次
  • {n,}:匹配前一个字符至少出现n次
  • {n,m}:匹配前一个字符出现次数在n到m之间
  • []:定义字符集,匹配括号内的任意一个字符。
  • [^]:定义否定字符集,匹配不在括号内的任意一个字符。
  • ^:匹配字符串的起始位置。
  • $:匹配字符串的结束位置。
  • ():分组符号,用于组合子模式,便于引用或应用量词。
  • |:逻辑“或”,匹配其左侧或右侧的任一模式。
  • -:在字符集[]内表示范围(如[a-z]),在字符集外则为普通连字符。

转义字符

转义字符简化了对常见字符类别的匹配,极大提升了模式的可读性与编写效率:

  • \d:匹配任意数字,等价于[0-9]
  • \w:匹配任意单词字符(字母、数字、下划线),等价于[a-zA-Z0-9_]
  • \s:匹配任意空白字符(空格、制表符、换行符等)。
  • \b:匹配单词边界。例如\bword\b能精确匹配独立单词“word”。
  • \D:匹配任意非数字字符,是\d的反义。
  • \W:匹配任意非单词字符,是\w的反义。
  • \S:匹配任意非空白字符,是\s的反义。

常见的正则表达式示例

掌握理论后,通过实际案例能更好地理解正则表达式的应用。以下是几个高频使用的匹配模式:

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

该模式的工作原理是:首先匹配由字母、数字、点、下划线等组成的用户名部分,接着是“@”符号,然后是允许字母、数字和连字符的域名,最后以点号和至少两个字母的顶级域名结尾。\b确保匹配的是完整的邮箱地址。

  • 匹配日期(YYYY-MM-DD格式)
\d{4}-\d{2}-\d{2}

规则清晰:四位年份、两位月份、两位日期,中间用短横线连接。这是匹配标准日期格式的简洁方案。

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

匹配以1开头,第二位为3-9,后接恰好9位数字的11位手机号。^$确保匹配整个字符串,避免部分匹配。

  • 匹配简单的HTML标签内容
<[^>]+>(.*)]+>

此模式用于捕获类似内容结构中的文本内容。<[^>]+>匹配开始标签,(.*)捕获标签间的所有内容,]+>匹配结束标签。请注意,它不适合处理嵌套的复杂HTML结构。

SQL中应用正则表达式

正则表达式在SQL数据库查询与数据处理中同样至关重要,它能高效解决传统LIKE操作符难以应对的复杂模式匹配问题。

字符串查找

使用REGEXP(在某些数据库中为RLIKE)操作符,可以筛选出符合特定模式的数据行。

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

此功能通常适用于VARCHARTEXT等文本类型字段。

字符串替换

对于需要根据复杂规则进行数据清洗或替换的场景,regexp_replace函数是理想工具。

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

参数说明如下:

  • str:原始待处理的字符串。
  • pattern:用于搜索匹配的正则表达式模式。
  • replace_str:用于替换匹配内容的新字符串。
  • occurrence:控制替换行为。设为0表示替换所有匹配项;设为正整数n则仅替换第n个匹配项。

常见案例

以一道LeetCode风格的SQL题目为例:查找有效邮箱的用户

题目要求筛选出邮箱符合以下规则的用户记录:

  • 邮箱前缀可包含字母(大小写)、数字、下划线、点或短横线。
  • 邮箱前缀必须以字母开头。
  • 域名固定为@leetcode.com

对应的SQL查询语句如下:

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

正则解析:^[a-zA-Z]确保首字符为字母;[a-zA-Z0-9_.-]*匹配零个或多个允许的后续字符;注意@和点.均需转义,以匹配其字面含义。

总结

正则表达式堪称文本处理的瑞士军刀,其强大功能与灵活性使其成为开发者必备技能。尽管初看符号繁多,但掌握元字符与转义字符的核心语法后,便能逐步拆解任何复杂模式。从数据验证、信息提取到SQL高级查询,正则的应用贯穿于整个数据处理流程。精通正则表达式,将显著提升你解决字符串相关问题的效率与精度。对于复杂正则的编写,务必遵循“多测试、多验证”的原则。

来源:https://www.jb51.net/database/3417095bv.htm
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

Chaplin
AI
Chaplin

Chaplin是什么 提起AI股票分析工具,很多投资者可能首先会想到各种通用型平台。但今天要聊的这个,有些特别——它叫Chaplin,一个专为专业交易者量身打造的分析利器。简单来说,这是一款由Chaplin app开发的工具,核心目标很明确:为那些渴求深度洞察和精准预测的专业投资者与交易者,提供前沿

热心网友
04.19
使用 hermes gateway start 命令让 AI 后台常驻运行
AI
使用 hermes gateway start 命令让 AI 后台常驻运行

执行hermes gateway start后服务未持续运行,需依次检查命令可用性、启用--daemon模式、注册systemd服务或手动创建service文件 遇到执行 hermes gateway start 命令后服务没跑起来,或者终端一关就停,甚至干脆提示“command not found

热心网友
04.19
Win10怎么设置多显示器_Win10多屏显示设置教程【简明】
系统平台
Win10怎么设置多显示器_Win10多屏显示设置教程【简明】

一、使用Win + P快捷键即时启用扩展模式 这个方法最直接,它绕过了复杂的设置界面,直接调用系统底层的投影功能。无论你是在游戏、办公还是系统卡顿的时候,都能快速调出,用来临时切换或者测试显示器连接状态非常方便。 操作前,先确保几个基本条件:所有显示器都通着电,视频线在电脑和显示器两头都插紧了,别忘

热心网友
04.19
MatchThatRoleAI
AI
MatchThatRoleAI

MatchThatRoleAI是什么 在求职市场里,一份好简历是敲门砖,但找到真正适合自己的岗位往往更像大海捞针。有没有一款工具能把这两件事儿都搞定,甚至还能帮你规划未来几年?还真有,这就是我们今天要聊的MatchThatRoleAI。 简单来说,它是一个在线智能平台,核心任务就是帮你“双向奔赴”。

热心网友
04.19
HermesAgentOpenRouter密钥填写位置在哪里
AI
HermesAgentOpenRouter密钥填写位置在哪里

一、环境变量文件 env 这是最推荐、也是优先级最高的配置方式。Hermes Agent 启动时会默认优先读取这个文件,好处是无需改动任何代码或主配置文件,对所有支持的模型提供商(包括OpenRouter)都通用。 具体操作很简单:找到或创建这个文件——路径是 ~ hermes env。然后,

热心网友
04.19