Notepad++正则表达全解

发布于:2025-07-09 ⋅ 阅读:(13) ⋅ 点赞:(0)

摘要:

Notepad++正则表达式符号大全包含11类常用语法:基础符号(.^$+?等)、预定义字符类(\d\w\s等)、锚点(\b\B)、量词({n,m})、分组引用(()$1)、字符集合([])、转义字符(.)、断言((?=))、换行符(\n\r)、非贪婪模式(?+?)和特殊标记((?i))。每个符号均配有功能说明和示例,如^匹配行首、\d匹配数字、.*?最短匹配等。特别说明Notepad++行模式特点,替换用$1引用分组,断言零宽度等特性。文档按逻辑分区排版,全面覆盖从基础到高级的正则用法,适合快速查询和深入

下面是Notepad++ 正则表达式符号说明(全量整理版)已整合逻辑与表达,并保持分区排版清晰、内容全面且每项带详细示例:


Notepad++ 正则表达式符号与用法大全

一、基础符号(最常用)

符号 含义/功能 示例 说明/结果
. 匹配除换行外任意单个字符 a.c 匹配abcaxca_c
^ 匹配行首 ^abc 匹配以abc开头的行
$ 匹配行尾 abc$ 匹配以abc结尾的行
* 前一项重复0次或多次 ab*c 匹配acabcabbcabbbc
+ 前一项重复1次或多次 ab+c 匹配abcabbcabbbc,不匹配ac
? 前一项重复0次或1次 ab?c 匹配acabc
{n} 前一项重复n次 a{3} 匹配aaa
{n,} 前一项至少重复n次 a{2,} 匹配aaaaaaaaa
{n,m} 前一项重复n到m次 a{2,4} 匹配aaaaaaaaa,不匹配aaaaaa
` ` 逻辑或,匹配左边或右边内容 `cat
() 分组 (abc)+ 匹配abcabcabc
[] 匹配括号内任一字符 [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* 匹配""aaaaaa
*? 0次或多次(非贪婪) a*? 尽可能少匹配a
+ 1次或多次(贪婪) a+ 匹配aaaaaa
+? 1次或多次(非贪婪) a+? 尽可能少匹配a
? 0次或1次 a? 匹配""a
?? 0次或1次(非贪婪) a?? 最少匹配
{n} 恰好n次 a{3} 匹配aaa
{n,} 至少n次 a{2,} 匹配aaaaaaaaa...
{n,m} n到m次 a{2,4} 匹配aaaaaaaaa,不匹配aaaaaa


五、分组与引用

符号 含义/功能 示例 说明/结果
() 分组 (abc)+ 匹配abcabcabc
(?: ) 非捕获分组 (?:abc)+ 匹配abcabcabc,不捕获内容
\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] 匹配abc
[^abc] 匹配非a、b、c的单字符 [^abc] 匹配除abc外的字符
[a-z] 匹配a到z之间任一小写字母 [a-z] 匹配ab...z
[A-Z] 匹配A到Z之间任一大写字母 [A-Z] 匹配AB...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 匹配abcABC
(?#...) 注释,不参与匹配 (?#note) 正则中的说明


实用组合示例

  • 一行同时包含 apple 和 banana(无顺序要求)
    查找:^(?=.*apple)(?=.*banana).*

  • 行首是数字且有字母
    查找:^(?=\d)(?=.*[a-zA-Z]).*

  • 替换所有行首数字为#加数字
    查找:^(\d+) 替换:#$1

  • 提取邮箱用户名
    查找:^(\w+)@(\w+\.\w+)$ 替换:$1

  • 最短匹配HTML标签
    查找:<[^>]+?>


补充说明

  • Notepad++ 默认正则“行”模式,点.不匹配换行,可勾选“点匹配换行”。

  • 替换时分组用 $1,查找里引用分组用 \1

  • 断言是零宽度判断,不消耗字符。

  • 部分高阶特性(如命名分组等)Notepad++ 暂不支持。

参考官方说明:

  • Notepad++ 用户手册:正则表达式支持说明


网站公告

今日签到

点亮在社区的每一天
去签到