SQL中的字符串正则表达式常见示例代码
正则表达式的基本概念
正则表达式(Regular Expression,常缩写为regex或regexp)是程序员处理文本的利器。它通过一套精炼的符号规则,精准描述和匹配字符串中的字符组合模式。无论是表单验证、数据清洗、日志分析,还是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 '正则表达式';
此功能通常适用于VARCHAR、TEXT等文本类型字段。
字符串替换
对于需要根据复杂规则进行数据清洗或替换的场景,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高级查询,正则的应用贯穿于整个数据处理流程。精通正则表达式,将显著提升你解决字符串相关问题的效率与精度。对于复杂正则的编写,务必遵循“多测试、多验证”的原则。
热门专题
热门推荐
Chaplin是什么 提起AI股票分析工具,很多投资者可能首先会想到各种通用型平台。但今天要聊的这个,有些特别——它叫Chaplin,一个专为专业交易者量身打造的分析利器。简单来说,这是一款由Chaplin app开发的工具,核心目标很明确:为那些渴求深度洞察和精准预测的专业投资者与交易者,提供前沿
执行hermes gateway start后服务未持续运行,需依次检查命令可用性、启用--daemon模式、注册systemd服务或手动创建service文件 遇到执行 hermes gateway start 命令后服务没跑起来,或者终端一关就停,甚至干脆提示“command not found
一、使用Win + P快捷键即时启用扩展模式 这个方法最直接,它绕过了复杂的设置界面,直接调用系统底层的投影功能。无论你是在游戏、办公还是系统卡顿的时候,都能快速调出,用来临时切换或者测试显示器连接状态非常方便。 操作前,先确保几个基本条件:所有显示器都通着电,视频线在电脑和显示器两头都插紧了,别忘
MatchThatRoleAI是什么 在求职市场里,一份好简历是敲门砖,但找到真正适合自己的岗位往往更像大海捞针。有没有一款工具能把这两件事儿都搞定,甚至还能帮你规划未来几年?还真有,这就是我们今天要聊的MatchThatRoleAI。 简单来说,它是一个在线智能平台,核心任务就是帮你“双向奔赴”。
一、环境变量文件 env 这是最推荐、也是优先级最高的配置方式。Hermes Agent 启动时会默认优先读取这个文件,好处是无需改动任何代码或主配置文件,对所有支持的模型提供商(包括OpenRouter)都通用。 具体操作很简单:找到或创建这个文件——路径是 ~ hermes env。然后,





