用^(.*)$匹配整行并捕获,替换为"$1"可稳给每行加双引号;需统一换行符、禁用".匹配换行符"和"自动换行"、转UTF-8无BOM,并注意空格、$、等元字符转义。

直接用 ^ 和 $ 正则替换,一行命令就能包住整行加双引号,根本不用装插件、也不用列编辑——后者一遇到空行或缩进就失效。
用 ^(.*)$ 一次性给每行加双引号
这是最稳的写法:匹配整行内容并捕获,再用引号包裹。不是分两步(先加开头再加结尾),避免因换行符处理不一致导致错位。
-
查找目标填^(.*)$,替换为填"$1",务必勾选「正则表达式」 - 它会把
abc变成"abc",空行变成"",纯空白行(如只含空格)也变成带引号的空串 - 如果不想处理空行,改用
^([^[:space:]]+)$(Notepad++ 支持 POSIX 字符类)或更兼容的^([^ ]+)$,确保至少有一个非换行字符 - 别写
$0—— Notepad++ 不支持$0,只认$1、$2等捕获组
空行、BOM、换行符不统一是批量失败的主因
正则没写错,但部分行没被替换?大概率是文档状态干扰了 ^ 和 $ 的行为。
- 检查换行符:菜单「编辑 → 文档格式转换」选「Windows (CR LF)」或「UNIX (LF)」,混用会导致
$在某些行失灵 - 关闭「. 匹配换行符」:一旦勾选,
.*会吞掉换行,全文变单行 - 禁用「视图 → 自动换行」:开启后视觉折行,
$仍只认物理行尾,看起来像漏替换 - 转为 UTF-8 无 BOM:菜单「编码 → 转为 UTF-8 无 BOM」,BOM 会卡在首行前,让
^失效
加完发现引号位置歪了或漏了,先查这三处
真正卡住人的往往不是正则语法,而是隐藏状态。
- 原始行末有空格或制表符?
^(.*)$会把它们一起包进去,变成"abc ";可先用[ ]+$→ 空 替换清理行尾空白 - 想加的是
"$var"?$是元字符,必须写成"$var",否则$var被当行尾 + 变量名,结果只剩"var" - 路径里有
?比如C: emp,得写成C:\temp,每个反斜杠都要双写
复杂点在于:空行是否算“有效数据”、引号内是否允许空白、原始文本有没有不可见控制字符——这些没法靠一个正则通吃,得根据实际数据结构预处理,而不是硬套模板。











