摘要:
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++ 用戶手冊:正則表達式支持說明