notepad++ 正则表达式

在 Notepad++ 中,正则表达式(Regular Expressions, Regex) 是一个强大的搜索和替换工具,可以高效地处理文本。以下是 Notepad++ 正则表达式 的指南:


1. 如何在 Notepad++ 中使用正则表达式

  1. 打开搜索窗口

    • 快捷键 Ctrl + F(查找)或 Ctrl + H(替换)。

  2. 选择正则表达式模式

    • 在搜索窗口底部,选择 "正则表达式"Regular expression)选项。

  3. 输入正则表达式

    • 在搜索框输入你的正则表达式,点击 "查找" 或 "替换"


2. 常用正则表达式语法

基本匹配

表达式说明示例
.匹配任意单个字符(换行符除外)a.c → abcaac
^匹配行首^Hello → 匹配行首的 Hello
$匹配行尾end$ → 匹配行尾的 end
\转义特殊字符\. → 匹配 .(而不是任意字符)

字符类

表达式说明示例
[abc]匹配 ab 或 c[aeiou] → 匹配任意元音
[^abc]匹配  abc 的字符[^0-9] → 匹配非数字
[a-z]匹配小写字母[a-z] → ab, ..., z
[A-Z]匹配大写字母[A-Z] → AB, ..., Z
[0-9]匹配数字[0-9] → 01, ..., 9
\d匹配数字(同 [0-9]\d\d → 1234
\w匹配字母、数字或下划线\w+ → abcvar_1
\s匹配空白字符(空格、制表符等)\s+ → , \t

量词(匹配次数)

表达式说明示例
*匹配 0 次或多次a* → ""aaa
+匹配 1 次或多次\d+ → 1123
?匹配 0 次或 1 次colou?r → colorcolour
{n}匹配恰好 n 次a{3} → aaa
{n,}匹配至少 n 次\d{2,} → 12123
{n,m}匹配 n 到 m 次a{2,4} → aaaaaaaaa

分组与捕获

表达式说明示例
( )分组,可在替换时引用(abc)+ → abcabcabc
\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++ 中高效处理文本!如果需要更复杂的匹配,可以尝试组合使用分组、量词和预查功能。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值