LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

SQL正则表达式

admin
2026年5月27日 16:24 本文热度 92

正则表达式(Regular Expression,简称 Regex 或 Regexp)是一种用于匹配字符串中字符组合的模式。它们在文本处理、数据验证和搜索操作中非常有用。以下是一些常见的正则表达式及其用途:

一. 常见的正则表达式

1. 字符类

字符类用于匹配特定的字符集合。.:匹配任何单个字符(除换行符外)。a:匹配字符a[abc]:字符集 匹配方括号内的任意一个字符。[^abc]:匹配不在方括号内的任意一个字符。[a-z]:匹配任何小写字母。[A-Z]:匹配任何大写字母。[0-9]:匹配任何数字。

2. 预定义字符类

预定义字符类是一些常用的字符类的简写形式。\d:匹配任何数字,等价于[0-9]\D:匹配任何非数字字符,等价于[^0-9]\s:匹配任何空白字符,包括空格、制表符、换行符等。\S:匹配任何非空白字符。\w:匹配字母、数字、下划线或汉字 等价于[a-zA-Z0-9_]\W:匹配任何非字母数字字符。

3. 边界匹配

边界匹配用于匹配字符串的开始或结束位置。^:匹配字符串的开始位置。 ^abc: 以abc开头$:匹配字符串的结束位置。 abc$: 以abc结尾^abc$: 完全等于abc\b:匹配单词边界。\bword\b 匹配完整的单词word[[:<:]]word[[:>:]]匹配单词边界。匹配完整的单词word
4. 量词
量词用于指定前面的字符或字符类可以出现的次数。*:匹配前面的字符或字符类0次或多次。go*gle 该表达式可以匹配的范围从ggle到goo...gle+:匹配前面的字符或字符类1次或多次。go+gle 该表达式可以匹配的范围从gogle到goo...gle?:匹配前面的字符或字符类0次或1次。colou?r 该表达式可以匹配colour和color{n}:匹配前面的字符或字符类恰好n次。go{2}gle 该表达式只匹配google{n,}:匹配前面的字符或字符类至少n次。go{2,}gle 该表达式可以匹配的范围从google到goo...gle{n,m}:匹配前面的字符或字符类至少n次,但不超过m次。employe{0,2} 该表达式可以匹配employ、employe 和employee[0-9]+:至少一个数字。^[0-9]+$:全部是数字。^[A-Z][a-z]+$:首字母大写,其余小写。
示例:假设有一个字符串 123abc456def789,我们想匹配其中的数字和字母组合。匹配数字:\d+ 匹配结果:123、456、789匹配字母:[a-z]+ 匹配结果:abc、def匹配数字和字母组合:\d+[a-z]+匹配结果:123abc、456def
5. 分组和捕获
分组和捕获用于将正则表达式的一部分分组,并捕获匹配的内容。():分组和捕获。(?:...):非捕获分组。示例:(?:abc) 匹配 abc,但不捕获匹配的内容。
6. 选择
选择用于匹配多个模式中的一个。|:选择。示例:abc|def 匹配 abc 或 def
7. 贪婪和非贪婪
量词的贪婪和非贪婪模式决定了匹配的长度。贪婪模式:默认情况下,量词是贪婪的,尽可能多地匹配字符。非贪婪模式:在量词后加?,使其变为非贪婪模式,尽可能少地匹配字符。
8. 断言(MySQL/SQL Server不支持)
断言用于指定匹配的条件,但不消耗字符。前瞻断言:    正前瞻:(?=...),匹配后面跟着指定模式的字符。    示例:abc(?=def) 匹配 abc,但只有在其后面跟着def 时才匹配。        负前瞻:(?!...),匹配后面不跟着指定模式的字符。    示例:abc(?!def) 匹配 abc,但只有在其后面不跟着def 时才匹配。
后顾断言:    正后顾:(?<=...),匹配前面跟着指定模式的字符。    示例:(?<=abc) def 匹配 def,但只有在其前面跟着 abc 时才匹配。        负后顾:(?<!...),匹配前面不跟着指定模式的字符。    示例:(?<!abc) def 匹配 def,但只有在其前面不跟着 abc 时才匹配。
9. 预定义字符集
[:alnum:]:任意字母和数字(同[a-zA-Z0-9])[:alpha:]:任意字符(同[a-zA-Z])[:blank:]:空格和制表(同[\\t])[:cntrl:]:ASCII控制字符(ASCII0到31和127)[:digit:]:任意数字(同[0-9])[:graph:]:与[:print:]相同,但是不包括空格[:lower:]:任意小写字母(同[a-z])[:upper:]:任意大写字母(同[A-Z])[:print:]:任意可打印字符[:punct:]:既不在[:alnum:]又不在[:cntrl:]中的任意字符[:space:]:包括空格在内的任意空白字符(同[\\f\\n\\r\\t\\v])[:xdigit:]:任意十六进制数字(同[a-fA-F0-9])
二. 使用语法

在 MySQL 中,可以使用 REGEXP 或 RLIKE 操作符来使用正则表达式。

语法:REGEXPSELECT column1, column2 FROM table_name WHERE column1 REGEXP 'pattern';
RLIKESELECT column1, column2, ...FROM table_nameWHERE column_name RLIKE 'pattern';

三. 使用 LIKE 和正则表达式的区别

LIKE 操作符:适用于简单的模式匹配,支持% 和 _ 两个通配符。性能较好,适用于大多数简单的文本匹配需求。示例:查询名字以字母 "C" 开头,且名字长度为3个字符的员工。使用 LIKE 操作符可以这样写:SELECT * FROM employeesWHERE first_name LIKE 'C__';
正则表达式:适用于复杂的模式匹配,支持更广泛的模式匹配功能。性能可能稍差,但在处理复杂模式时非常强大。示例:SELECT * FROM employeesWHERE first_name REGEXP '^A.{2}$';

四. 注意事项

1、正则表达式匹配默认是不区分大小写的,使用BINARY关键字可以进行区分大小写的匹配。2、在模式中使用特殊字符时需要使用反斜杠转义。\\.表示查找.


该文章在 2026/5/27 16:24:04 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-1  粤公网安备44030602007207号