摘要:
Notepad++正则表达式符号大全包含11类常用语法:基础符号(.^$+?等)、预定义字符类(\d\w\s等)、锚点(\b\B)、量词({n,m})、分组引用(()$1)、字符集合([])、转义字符(.)、断言((?=))、换行符(\n\r)、非贪婪模式(?+?)和特殊标记((?i))。每个符号均配有功能说明和示例,如^匹配行首、\d匹配数字、.*?最短匹配等。特别说明Notepad++行模式特点,替换用$1引用分组,断言零宽度等特性。文档按逻辑分区排版,全面覆盖从基础到高级的正则用法,适合快速查询和深入
下面是Notepad++ 正则表达式符号说明(全量整理版),已整合逻辑与表达,并保持分区排版清晰、内容全面且每项带详细示例:
Notepad++ 正则表达式符号与用法大全
一、基础符号(最常用)
符号 | 含义/功能 | 示例 | 说明/结果 |
---|---|---|---|
. | 匹配除换行外任意单个字符 | a.c | 匹配abc 、axc 、a_c 等 |
^ | 匹配行首 | ^abc | 匹配以abc 开头的行 |
$ | 匹配行尾 | abc$ | 匹配以abc 结尾的行 |
* | 前一项重复0次或多次 | ab*c | 匹配ac 、abc 、abbc 、abbbc 等 |
+ | 前一项重复1次或多次 | ab+c | 匹配abc 、abbc 、abbbc ,不匹配ac |
? | 前一项重复0次或1次 | ab?c | 匹配ac 、abc |
{n} | 前一项重复n次 | a{3} | 匹配aaa |
{n,} | 前一项至少重复n次 | a{2,} | 匹配aa 、aaa 、aaaa 等 |
{n,m} | 前一项重复n到m次 | a{2,4} | 匹配aa 、aaa 、aaaa ,不匹配a 或aaaaa |
` | ` | 逻辑或,匹配左边或右边内容 | `cat |
() | 分组 | (abc)+ | 匹配abc 、abcabc |
[] | 匹配括号内任一字符 | [aeiou] | 匹配任一元音字母 |
[^] | 匹配不在括号内的任一字符 | [^0-9] | 匹配非数字字符 |
\ | 转义特殊字符或引出特殊含义 | \. | 匹配. 本身 |
例外用法:
[-]
表示“-”本身,如[a\-z]
仅匹配a
、-
、z
(不代表区间)。
二、预定义字符类(常用速查)
符号 | 含义/功能 | 示例 | 说明/结果 |
---|---|---|---|
\d | 匹配任一数字(等价于[0-9] ) | \d+ | 匹配数字串,如12345 |
\D | 匹配非数字(等价于[^0-9] ) | \D+ | 匹配非数字,如abc |
\w | 匹配字母/数字/下划线(等价于[A-Za-z0-9_] ) | \w+ | 匹配单词、变量名,如word_123 |
\W | 匹配非字母/数字/下划线 | \W+ | 匹配标点或空格 |
\s | 匹配空白字符(空格、Tab、换行等) | \s+ | 匹配空格、Tab等 |
\S | 匹配非空白字符 | \S+ | 匹配非空格内容 |
例外用法:
[\d\s]
同时匹配数字和空白字符。
三、锚点(定位)
符号 | 含义/功能 | 示例 | 说明/结果 |
---|---|---|---|
^ | 行首 | ^Hello | 匹配以Hello 开头的行 |
$ | 行尾 | end$ | 匹配以end 结尾的行 |
\b | 单词边界 | \bcat\b | 匹配独立单词cat |
\B | 非单词边界 | \Bcat\B | 匹配如bobcat 里的cat |
例外用法:
^\s*$
匹配仅含空白的整行。
四、量词(重复控制)
符号 | 含义/功能 | 示例 | 说明/结果 |
---|---|---|---|
* | 0次或多次(贪婪) | a* | 匹配"" 、a 、aa 、aaa 等 |
*? | 0次或多次(非贪婪) | a*? | 尽可能少匹配a |
+ | 1次或多次(贪婪) | a+ | 匹配a 、aa 、aaa 等 |
+? | 1次或多次(非贪婪) | a+? | 尽可能少匹配a |
? | 0次或1次 | a? | 匹配"" 或a |
?? | 0次或1次(非贪婪) | a?? | 最少匹配 |
{n} | 恰好n次 | a{3} | 匹配aaa |
{n,} | 至少n次 | a{2,} | 匹配aa 、aaa 、aaaa ... |
{n,m} | n到m次 | a{2,4} | 匹配aa 、aaa 、aaaa ,不匹配a 、aaaaa |
五、分组与引用
符号 | 含义/功能 | 示例 | 说明/结果 |
---|---|---|---|
() | 分组 | (abc)+ | 匹配abc 、abcabc |
(?: ) | 非捕获分组 | (?:abc)+ | 匹配abc 、abcabc ,不捕获内容 |
\1 , \2 … | 引用第1、2...个分组内容(在替换时) | (\w+) \1 | 匹配如abc abc ,\1为第1组内容 |
$1 , $2 … | 替换时引用分组内容(仅替换用) | 查找(cat) , 替换为$1s | cat 替换成cats |
$0 | 替换时代表整段匹配内容 | 查找.* , 替换->$0<- | 整行加前后缀 |
例外用法:
((a)(b))
,$1=ab
,$2=a
,$3=b
六、字符集合
符号 | 含义/功能 | 示例 | 说明/结果 |
---|---|---|---|
[abc] | 匹配a或b或c中的一个字符 | [abc] | 匹配a 、b 、c |
[^abc] | 匹配非a、b、c的单字符 | [^abc] | 匹配除a 、b 、c 外的字符 |
[a-z] | 匹配a到z之间任一小写字母 | [a-z] | 匹配a 、b ...z |
[A-Z] | 匹配A到Z之间任一大写字母 | [A-Z] | 匹配A 、B ...Z |
[0-9] | 匹配任一数字 | [0-9] | 匹配0 -9 |
[a-zA-Z0-9] | 匹配大小写字母和数字 | [a-zA-Z0-9] | 匹配任何字母或数字 |
[] | 空集合,匹配不到任何内容 | [] | 不会有结果 |
例外用法:
[-abc]
,[-]
放最前面表示“-”本身。
七、转义与特殊字符
符号 | 含义/功能 | 示例 | 说明/结果 |
---|---|---|---|
\. | 匹配点号. 本身 | a\.b | 匹配a.b |
\\ | 匹配反斜杠\ 本身 | \\d | 匹配\d 文本 |
\* | 匹配星号* 本身 | a\*b | 匹配a*b |
\( \) | 匹配小括号 | \([0-9]+\) | 匹配带括号的数字如(123) |
\[ \] | 匹配方括号 | \[[a-z]+\] | 匹配如[abc] |
| | 匹配竖线` | `本身 | a|b |
八、断言与逻辑运算(高级,“与”、“或”)
写法/符号 | 逻辑 | 示例表达式 | 说明/结果 |
---|---|---|---|
` | ` | 逻辑或 | `apple |
(?=exp1)(?=exp2) | 逻辑与 | ^(?=.*apple)(?=.*banana).* | 同时包含apple和banana,顺序无关 |
(?=exp) | 正向先行断言 | foo(?=bar) | 匹配foobar 中的foo ,后跟bar |
(?!exp) | 否定先行断言 | foo(?!bar) | 匹配foo 后面不是bar 的位置 |
(?<=exp) | 正向后行断言 | (?<=@)\w+ | 匹配邮箱@ 后面的用户名(Notepad++ 8.3+支持) |
(?<!exp) | 否定后行断言 | (?<!@)\w+ | 匹配不是@ 后面的单词(Notepad++ 8.3+支持) |
逻辑与例外补充:
多个条件用多个
(?=...)
叠加,如^(?=.*cat)(?=.*dog).*
表示一行同时有cat和dog。
九、换行与制表符
符号 | 含义/功能 | 示例 | 说明/结果 |
---|---|---|---|
\n | 换行符(LF,Unix) | abc\ndef | 匹配跨行内容 |
\r | 回车符(CR,Win) | \r\n | Windows文本换行 |
\t | 制表符Tab | a\tb | 匹配a 后跟Tab再跟b |
十、非贪婪模式
符号 | 含义/功能 | 示例 | 说明/结果 |
---|---|---|---|
*? | 非贪婪0次或多次 | ".*?" | 匹配最短一对引号内的内容 |
+? | 非贪婪1次或多次 | <.+?> | 匹配最短的HTML标签 |
?? | 非贪婪0或1次 | ab?? | 尽量不匹配b |
十一、其它
符号 | 含义/功能 | 示例 | 说明/结果 |
---|---|---|---|
(?i) | 匹配时忽略大小写(置于表达式前) | (?i)abc | 匹配abc 、ABC 等 |
(?#...) | 注释,不参与匹配 | (?#note) | 正则中的说明 |
实用组合示例
一行同时包含 apple 和 banana(无顺序要求)
查找:^(?=.*apple)(?=.*banana).*
行首是数字且有字母
查找:^(?=\d)(?=.*[a-zA-Z]).*
替换所有行首数字为
#
加数字
查找:^(\d+)
替换:#$1
提取邮箱用户名
查找:^(\w+)@(\w+\.\w+)$
替换:$1
最短匹配HTML标签
查找:<[^>]+?>
补充说明
Notepad++ 默认正则“行”模式,点
.
不匹配换行,可勾选“点匹配换行”。替换时分组用
$1
,查找里引用分组用\1
。断言是零宽度判断,不消耗字符。
部分高阶特性(如命名分组等)Notepad++ 暂不支持。
参考官方说明:
Notepad++ 用户手册:正则表达式支持说明