1、背景
正则表达式经常容易遗忘,每次使用的时候拿出来复习一次。
本次是学习B站的,正则表达式视频的笔记记录,方便后续快速回顾和复习,➡️视频地址
2、正则表达式入门

工具网站:
https://regexr-cn.com
https://codejiaonang.com/
2.1 字符集
2.1.1 [] 表示匹配任意的字符
字符集用两个方括号[]表示,为字符的合集,匹配其中的任意的字符。
2.1.2 匹配所有的字母
根据字符集,可以联想到,[abcdefghijklmnopqrstuvwxyz] 就可以小写字母匹配方式
同样也可以使用[a-z]来进行匹配。
其中 - 表示区间的意思。
-
匹配数字
使用字符组也可以进行匹配[01234566789]
同样,也可以用[0-9]进行匹配
-
匹配特殊字符
使用反斜杠\特殊字符,来匹配特殊字符,如匹配 - 表示匹配 -
-
匹配指定范围外
^ 符号表示取反,如果查找非字母、非数字的其他字符
2.2 快捷方式
如果要匹配全部数字、全部字符等等需求,如果都使用字符集,写的内容将会非常的多,所以使用快捷方式。
(1)\d 反斜杠d表示所有的数字,即0-9
(2)\w 反斜杠小w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]',其中包含一个下划线。
(3) \s 反斜杠,小s,用于匹配空白字符,匹配任何空白字符,等价于 [ \f\n\r\t\v]
(4)\b 匹配单词的边界
用于匹配单词和空格或者其他字符的内容
- 快捷方式的取反
可以用^来进行取反,快捷方式同样提供了一些快捷方式来进行取反的操作,一般用大写字母来表示取反。
(1)\D用于匹配所有的非数字
(2)\W用于匹配所有的非字符等价于'[^A-Za-z0-9_]',其中包含一个下划线
(3)\S用于匹配非空格的所有的字符
2.3 匹配开头和结尾
^ 写到字符集中,表示取反,如果不在字符集中表示匹配以后面的字符开头,$表示以前面字符结尾。
如有一个:python is a programming language, easy to lean python.
(1)匹配开头
(2)匹配结尾
2.4 匹配任意单个字符
可以使用点 . 来匹配除了\n外的任意字符,如果要匹配包括了\n的字符,可以用[.\n]来进行匹配。
2.5 可选字符
表示前面的字符可以出现,也可以不出现
# 任意单个字符,可以出现,也可以不出现
.?
匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。
2.6 重复
2.6.1 重复的次数
在字符后面使用{n},来表示这个字符重复n次。
2.6.2 重复的区间




2.9 断言
断言的分类有:
1、正向先行断言
2、反向先行断言
3、正向后行断言
4、反向后行断言
断言用于匹配字符符合特定的条件
(?=.?[a-z])(?=.?[A-Z]).+ 这段正则表达式规定了匹配的字符串中必须包含至少一个大写和小写的字母。
2.8.3正向先行断言
正向指的是等于后面字符串,反向是指的不等于后面字符串。
str1(?=str2)
只有str1str2 这样的字符串才能够被匹配上,指的是str1后面必须要有str2


2.8.4 正向后行断言
匹配 喜欢 这2个字符,要求前面有我,后面有你
正向 : 等于
反向 : 不等于
先行:从左往右看
后行:从右往左看
2.8.4 反向后行断言
喜欢前面没有我,后面没有你
2.10 贪婪和非贪婪
贪婪模式为尽量多的匹配,?为非贪婪,表示匹配到最近的字符
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)