摘要:
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++ 用户手册:正则表达式支持说明