在 Notepad++ 中,正则表达式(Regular Expressions, Regex) 是一个强大的搜索和替换工具,可以高效地处理文本。以下是 Notepad++ 正则表达式 的指南:
1. 如何在 Notepad++ 中使用正则表达式
-
打开搜索窗口:
-
快捷键
Ctrl + F
(查找)或Ctrl + H
(替换)。
-
-
选择正则表达式模式:
-
在搜索窗口底部,选择 "正则表达式"(
Regular expression
)选项。
-
-
输入正则表达式:
-
在搜索框输入你的正则表达式,点击 "查找" 或 "替换"。
-
2. 常用正则表达式语法
基本匹配
表达式 | 说明 | 示例 |
---|---|---|
. | 匹配任意单个字符(换行符除外) | a.c → abc , aac |
^ | 匹配行首 | ^Hello → 匹配行首的 Hello |
$ | 匹配行尾 | end$ → 匹配行尾的 end |
\ | 转义特殊字符 | \. → 匹配 . (而不是任意字符) |
字符类
表达式 | 说明 | 示例 |
---|---|---|
[abc] | 匹配 a 、b 或 c | [aeiou] → 匹配任意元音 |
[^abc] | 匹配 非 a 、b 、c 的字符 | [^0-9] → 匹配非数字 |
[a-z] | 匹配小写字母 | [a-z] → a , b , ..., z |
[A-Z] | 匹配大写字母 | [A-Z] → A , B , ..., Z |
[0-9] | 匹配数字 | [0-9] → 0 , 1 , ..., 9 |
\d | 匹配数字(同 [0-9] ) | \d\d → 12 , 34 |
\w | 匹配字母、数字或下划线 | \w+ → abc , var_1 |
\s | 匹配空白字符(空格、制表符等) | \s+ → , \t |
量词(匹配次数)
表达式 | 说明 | 示例 |
---|---|---|
* | 匹配 0 次或多次 | a* → "" , a , aa |
+ | 匹配 1 次或多次 | \d+ → 1 , 123 |
? | 匹配 0 次或 1 次 | colou?r → color , colour |
{n} | 匹配恰好 n 次 | a{3} → aaa |
{n,} | 匹配至少 n 次 | \d{2,} → 12 , 123 |
{n,m} | 匹配 n 到 m 次 | a{2,4} → aa , aaa , aaaa |
分组与捕获
表达式 | 说明 | 示例 |
---|---|---|
( ) | 分组,可在替换时引用 | (abc)+ → abc , abcabc |
\1 , \2 , ... | 引用捕获的分组 | 查找 (\d+)-(\d+) ,替换为 \2-\1 → 123-456 → 456-123 |
(?: ) | 非捕获分组(不存储匹配) | (?:abc)+ → abcabc |
3. 实际应用示例
示例 1:删除空行
-
查找:
^\s*$
-
^
行首,\s*
任意空白字符(0 次或多次),$
行尾。
-
-
替换:留空(删除空行)。
示例 2:提取所有邮箱
-
查找:
[\w.-]+@[\w.-]+\.\w+
-
[\w.-]+
匹配用户名(字母、数字、.
、-
),@
后跟域名。
-
示例 3:批量替换日期格式
-
原始文本:
2023-12-31
-
查找:
(\d{4})-(\d{2})-(\d{2})
-
替换:
\3/\2/\1
-
结果:
31/12/2023
(改为日/月/年格式)。
示例 4:删除 HTML 标签
-
查找:
<[^>]+>
-
<
开始标签,[^>]+
匹配>
以外的任意字符,>
结束标签。
-
-
替换:留空(删除所有 HTML 标签)。
4. Notepad++ 正则表达式注意事项
-
区分大小写:默认区分大小写,可在搜索选项取消勾选
Match case
。 -
贪婪匹配:
.*
会匹配尽可能多的字符,.*?
是非贪婪匹配(匹配最少字符)。 -
换行匹配:默认
.
不匹配换行符,需勾选[. matches newline]
(在查找
→替换
窗口)。 -
特殊字符:
\
,^
,$
,*
,+
,?
,[
,]
,{
,}
,(
,)
需要转义(如\*
匹配*
)。
5. 高级技巧
使用 \R
匹配换行
-
\R
可以匹配\r\n
(Windows)、\n
(Linux/macOS)等换行符。 -
示例:
abc\Rdef
可以匹配:abc def
条件匹配
-
(?=...)
正向预查(匹配后面是...
的内容)。-
示例:
Windows(?=10)
只匹配Windows
后面是10
的情况(如Windows10
)。
-
-
(?<=...)
反向预查(匹配前面是...
的内容)。-
示例:
(?<=\$)\d+
匹配$
后面的数字(如$100
→100
)。
-
总结
任务 | 正则表达式 |
---|---|
删除空行 | ^\s*$ |
提取邮箱 | [\w.-]+@[\w.-]+\.\w+ |
替换日期格式 | (\d{4})-(\d{2})-(\d{2}) → \3/\2/\1 |
删除 HTML 标签 | <[^>]+> |
匹配换行 | \R |
掌握这些正则表达式技巧,可以让你在 Notepad++ 中高效处理文本!如果需要更复杂的匹配,可以尝试组合使用分组、量词和预查功能。