Keep writing
Never let you down
Never let you down
Never let you down
Never let you down
Keep recording
Keep writing
Never let you down
Keep writing
Keep writing
Never let you down
Keep writing
Never let you down
Never let you down
Keep writing
YosoraのBlog
首页杂谈说说照片墙音乐星语收藏项目归档
返回杂谈
正则基础

正则基础

字符匹配、分组和引用、锚点/边界、数量表示、预查断言、特殊标志等基本规则

2026.06.02 18:383 分钟阅读normal#正则表达式#基础知识

正则表达式基本规则

字符匹配

规则 描述
[abc] 字符集,匹配集合中所含的任一字符
[^abc] 否定字符集,匹配任何不在集合中的字符
[a-z] 字符范围,匹配指定范围内的任意字符
. ? 匹配除换行符以外的任何单个字符
\ ? 转义字符
\w ? 匹配任何字母数字,包括下划线(等价于[A-Za-z0-9_])
\W ? 匹配任何非字母数字(等价于[^A-Za-z0-9_])
\d ? 数字,匹配任何数字
\D ? 非数字,匹配任何非数字字符
\s ? 空白,匹配任何空白字符,包括空格、制表符等
\S ? 非空白,匹配任何非空白字符

分组和引用

规则 描述
(expression) 分组,匹配括号里的整个表达式
(?:expression) 非捕获分组,匹配括号里的整个字符串但不获取匹配结果,拿不到分组引用
\num 对前面所匹配分组的引用,比如(\d)\1可以匹配两个相同的数字,(Code)(Sheep)\1\2则可以匹配CodeSheepCodeSheep

锚点/边界

规则 描述
^ 匹配字符串或行开头
$ 匹配字符串或行结尾
\b 匹配单词边界:如Sheep\b可以匹配CodeSheep末尾的Sheep,不能匹配CodeSheepCode中的Sheep
\B 匹配非单词边界:比如Code\B可以匹配HelloCodeSheep中的Code,不能匹配HelloCode中的Code

数量表示

规则 描述
? 匹配前面的表达式0个或1个,即表示可选项
+ 匹配前面的表达式至少1个
* 匹配前面的表达式0个或多个
| 或运算符,并集,可以匹配符号前后的表达式
{m} 匹配前面的表达式m个
{m,} 匹配前面的表达式最少m个
{m,n} 匹配前面的表达式最少m个,最多n个

预查断言

规则 描述
(?=) 正向预查,如Code(?=Sheep)匹配CodeSheep中的Code,但不匹配CodePig中的Code
(?!) 正向否定预查,如Code(?!Sheep)不匹配CodeSheep中的Code,但能匹配CodePig中的Code
(?<=) 反向预查,如(?<=Code)Sheep匹配CodeSheep中的Sheep,但不匹配ReadSheep中的Sheep
(?<!) 反向否定预查,如(?<!Code)Sheep不匹配CodeSheep中的Sheep,但能匹配ReadSheep中的Sheep

特殊标志

规则 描述
/.../i 忽略大小写
/.../g 全局匹配
/.../m 多行修饰符,用于多行匹配