ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Notepad++正则表达全解

Notepad++正则表达全解

摘要:

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), 替换为$1scat替换成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\nWindows文本换行
\t制表符Taba\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++ 用户手册:正则表达式支持说明

返回列表