目录
2.正则表达式模式 (Regular Expression)
4.实例4:将特定格式的日期(YYYY-MM-DD)改为(DD/MM/YYYY)
一、查找模式介绍
1. 扩展模式 (Extended)
核心概念:
扩展模式不是正则表达式,它只识别几个固定的转义序列,主要用于处理一些不可见的特殊字符。输入的就是字面意义的转义符。
常用转义符及其含义:
|-------|---------------------------|---------------------------------------------------------|
| 符号 | 含义 | 说明 |
| \n | 换行符 (Line Feed, LF) | 在Windows文本中通常与\r成对出现,表示新的一行。在Unix/Linux或现代代码文件中,常单独使用。 |
| \r | 回车符 (Carriage Return, CR) | 在Windows文本中通常与\n成对出现(即\r\n)。单独出现可能是Mac OS旧格式。 |
| \t | 制表符 (Tab) | 相当于按一次Tab键产生的缩进。 |
| \0 | 空字符 (Null) | 通常用作字符串的结束标志,在文本文件中不常见。 |
| \\ | 反斜杠本身 | 如果要查找一个真正的反斜杠字符,需要转义它。 |
| \xhh | 十六进制字符 | 查找ASCII码为hh(两位十六进制数)的字符。例如,\x41 代表大写字母 A。 |
2. 正则表达式模式 (Regular Expression)
****核心概念:****正则表达式是一个强大的模式匹配语言。在Notepad++中,\n, \r, \t等符号在正则模式下具有完全不同的含义------它们成了正则表达式的元字符,用于匹配位置或特定字符类,而不是直接匹配字面的换行符。
关键区别与正确用法:
在正则表达式模式下:
- 不要用\n, \r来匹配换行符! 这是最常见的误区。
- 在Notepad++的正则中,换行符应该用 \R 来匹配。
- \t 通常仍可匹配制表符,但更通用的方法是使用 \x09。
Notepad++正则常用元字符:
|-------|---------------------------------------------------|
| 符号 | 含义 |
| . | 匹配除换行符外的任意单个字符。 |
| \R | 匹配任何类型的换行符(\r, \n, \r\n)。这是Notepad++特有的,非常实用。 |
| \r? | 匹配一个可选的\r,用于处理不同系统的换行符。 |
| ^ | 匹配一行的开始位置(在"."匹配模式开启时,匹配文件开始)。 |
| $ | 匹配一行的结束位置(在"."匹配模式开启时,匹配文件结束)。 |
| \t | 匹配一个制表符。 |
| \xhh | 同样匹配十六进制字符。 |
| \d | 匹配一个数字,等价于 [0-9]。 |
| \w | 匹配字母、数字、下划线,等价于 [A-Za-z0-9_]。 |
| \s | 匹配任何空白字符,包括空格、制表符、换页符等。 |
| [ ] | 字符类,匹配括号内的任意一个字符。 |
| * | 前面的元素匹配零次或多次。 |
| + | 前面的元素匹配一次或多次。 |
| ? | 前面的元素匹配零次或一次。 |
| {m,n} | 前面的元素匹配至少m次,至多n次。 |
| ( ) | 定义捕获分组,可以在替换时用 \1, \2 引用。 |
选择指南
|------|--------------------------|---------------------|
| 特性 | 扩展模式 | 正则表达式模式 |
| 本质 | 简单的转义字符替换 | 强大的模式匹配语言 |
| 换行符 | 用 \r\n 或 \n 匹配 | 用 \R 匹配(最重要区别!) |
| 用途 | 简单的、字面量的特殊字符替换 | 复杂的、有模式的查找/替换、文本重构 |
| 学习曲线 | 简单,仅几个符号 | 较陡峭,需学习语法 |
| 何时使用 | 处理文件格式(如换行符转换)、替换Tab/空格等 | 批量格式化数据、提取信息、复杂文本清理 |
黄金法则:
1.如果只是简单处理\r, \n, \t这些特殊字符本身,用"扩展模式"。
2.如果需要匹配模式(如"以XXX开头"、"包含数字"、"重复出现"),用"正则表达式模式",并牢记在正则模式下匹配换行符要用\R。
二、正则表达式 使用实例
1. 实例1:删除所有空行
1. 查找目标:^\s*\R
2. 替换为:(留空)
3. 解释:^ 行首,\s* 任意空白(包括空格、Tab),\R 换行符。匹配以空白开头直到换行的内容,并删除。
2. 实例2:在每行行首添加 序号
查找目标:^
替换为:LINE_NUMBER. (注意:LINE_NUMBER 是Notepad++内置变量)
更好的方法:使用"编辑"->"列编辑"功能更简单。
3. 实例3:交换两列数据(用逗号分隔)
假设文本为 张三,001,要变成 001,张三。
1. 查找目标:^(.*?),(.*?)$
2. 替换为:\2,\1
3. 解释:
^ 行开始。
(.*?) 第一个分组,非贪婪模式匹配任意字符,直到遇到逗号。对应"张三"。
, 匹配逗号。
(.*?) 第二个分组,匹配剩下的字符。对应"001"。
$ 行结束。
\2,\1 在替换时,交换两个分组的位置。
4. 实例 4 :将特定格式的日期(YYYY-MM-DD)改为(DD/MM/YYYY)
假设文本为 2023-10-27,要变成 27/10/2023。
1. 查找目标:(\d{4})-(\d{2})-(\d{2})
2. 替换为:\3/\2/\1
3. ****解释:****用三个分组捕获年、月、日,然后按日、月、年的顺序重组。
三、常用操作
1. 每一行后加一个逗号使用办法
方法1:使用正则表达式(最常用)
步骤:
1.按 Ctrl+H 打开替换对话框
2.查找目标:(或使用 \\R 加 )
3.替换为:,(或 ,\R 如果要在逗号后换行)
4.搜索模式:选择 "正则表达式"
5.点击"全部替换"
方法2:使用列编辑模式(推荐用于可视化操作)
步骤:
1.将光标定位到第一行开头
2.按住 Alt+Shift,然后用鼠标从第一行末尾向下拖动,选择多行
3.或者按 Alt+鼠标左键 进行列选择
4.直接输入逗号 ,,会在所有选中行的末尾同时添加逗号
方法3:处理带内容的行
如果需要保留原行内容并在末尾加逗号(即使行尾可能有空格):
步骤:
查找目标:^(.*)$
替换为:\1,
搜索模式:正则表达式
解释:^ 行开始,(.*) 捕获整行内容,$ 行结束,\1, 用捕获的内容加逗号替换
注意事项:
1.如果文件最后一行也要加逗号:直接使用方法1的正则表达式 $ 替换为 , 即可。
2.如果只想在非空行加逗号:
查找目标:^(.+)$
替换为:\1,
如果要排除已经有逗号的行:
查找目标:^([^,\r\n]+)$
替换为:\1,
如果在添加逗号后想要移除多余空格,可以先运行:
查找目标:\s+$
替换为:(留空)
搜索模式:正则表达式
清除行尾空格后再加逗号。
最简单的日常用法:直接用正则模式,查找 $,替换为 ,,点击全部替换即可。
2. 替换每行后面的逗号为句号
在Notepad++中将每行末尾的逗号替换为句号,有以下几种方法:
方法1:直接正则表达式替换(最常用)
步骤:
1.按 Ctrl+H 打开替换对话框
2.查找目标:,$
3.替换为:.
4.搜索模式:选择 "正则表达式"
5.点击"全部替换"
方法2:替换特定位置的逗号
如果只想替换行尾的逗号,保留行中间的逗号:
1.查找目标:^([^,\r\n]*),$
2.替换为:\1.
3.搜索模式:正则表达式
4.解释:只匹配整行只有一个逗号且在末尾的情况
方法3:替换行尾任意标点为句号
如果行尾可能是逗号、分号等,想统一改为句号:
1.查找目标:[,;:]$
2.替换为:.
4.搜索模式:正则表达式
5.解释:匹配行尾的逗号、分号或冒号,替换为句号
方法4:使用列编辑模式(可视化操作)
步骤:
1.按 Alt+Shift 并鼠标拖动选择每行末尾的逗号列
2.直接输入句号 .,所有选中的逗号会同时变为句号
方法5:处理带空格的复杂情况
如果逗号前后可能有空格:
情况1:逗号前可能有空格
查找目标:\s*,$
替换为:.
搜索模式:正则表达式
情况2:只替换逗号,保留前面的空格
查找目标:([^\s]),$
替换为:\1.
搜索模式:正则表达式
方法6:批量替换多种标点符号
将行尾的各种标点统一改为句号:
查找目标:([,;:!?])$
替换为:.
搜索模式:正则表达式
特殊场景处理:
场景1:处理CSV格式但想改为句号
原始:
苹果,红色,甜
香蕉,黄色,软
橙子,橙色,酸
只需改行尾:
查找目标:^([^,\r\n]*),([^,\r\n]*),([^,\r\n]*),$
替换为:\1,\2,\3.
场景2:只替换中文逗号为句号
查找目标:,$
替换为:。
搜索模式:正则表达式
场景3:确保句号后没有多余空格
查找目标:,\s*$
替换为:。
搜索模式:正则表达式
注意事项:
1.确保点号.不是正则元字符:在查找目标中,逗号,是普通字符,但在查找目标中的句号.需要转义。不过在替换框中,句号就是普通字符。
2.多步骤操作:如果文件格式复杂,建议先预览几行,或分步骤操作:
- 先去除行尾空格:\s+$ → 留空
- 再替换逗号为句号:,$ → .
3.使用"全部替换"前:最好先点击"查找下一个"确认匹配是否正确。
最简单实用的方法:直接使用正则表达式模式,查找 ,$ ,替换为 . ,然后点击"全部替换"。这可以精确地将每行末尾的逗号改为句号,而不会影响行中间的其他逗号。替换每行后面的逗号为句号