最稳方案是勾选「正则表达式」、关闭「匹配换行符」,用$匹配行尾;需先用\s*$清除行尾空白再加标点,非空行处理用^.*$,并检查自动换行、列编辑模式及BOM/编码问题。

Notepad++ 用 $ 匹配行尾加内容,必须关掉「匹配换行符」
直接填 $ 没反应?八成是「匹配换行符」被勾选了。这个开关一开,$ 就只认当前光标所在行的换行类型(比如 \r\n 前那个位置),结果部分行漏掉、替换后还多出空行。
正确操作只有三步:
- 按
Ctrl+H打开替换对话框 - 勾选「正则表达式」,但一定不要勾「匹配换行符」
- 「查找目标」填
$,「替换为」填你要加的内容,比如; // end或,
Notepad++ 默认能跨平台识别行尾(\n 或 \r\n),前提是这个开关关着。开了它,就等于主动放弃兼容性。
加标点前先清空行尾空白,否则会冒出双空格
原始行尾有空格或 Tab,直接 $ 替换为 , ,结果就是 xxx , ——中间两个空格。正则不“理解”语义,只机械插在 $ 位置。
稳的做法分两步:
- 第一步:查找
\s*$,替换为空(吃掉所有行尾空白) - 第二步:查找
$,替换为,或;等带空格的符号
\s* 是贪婪匹配,一次清干净所有连续空白,比手动删更可靠。别省这一步,尤其处理从 Excel、日志或 Git 拉来的文本时。
只想给非空行加内容?用 ^.*$ 而不是 ^.+$
^.+$ 会漏掉单字符行(比如只写 a 的那行),因为 + 要求至少一个字符;而空行是纯换行符,^.*$ 中的 .* 允许零个字符,刚好覆盖“有内容”的全部情况。
操作方式:
- 「查找目标」填
^.*$(确保「. 匹配换行符」未勾选) - 「替换为」填
$0, // added($0表示原整行)
如果还要跳过纯空白行(含空格、Tab),可用 ^[^\r\n]*\S[^\r\n]*$,但日常先手动删空行更快,也更可控。
替换后格式错乱?先看编辑器状态,不是正则错了
错乱往往和 $ 无关,而是视觉干扰导致的误判:
- 「视图 → 自动换行」开着时,长行被折成多行显示,
$只在物理行尾生效,看起来像漏了几行 - 不小心进了「列编辑模式」(Alt + 拖选),状态栏有提示,此时替换只作用于列块区域,不是全文
- 替换前用「搜索 → 在文档中查找」输入
$测试:如果只高亮几行,说明文件有 BOM、混合编码或控制字符
最易忽略的是编码问题——GBK 文件里夹了 UTF-8 BOM,$ 就可能失效。遇到死活不全中的情况,先「编码 → 转为 UTF-8 无 BOM」再试。


















