notepad++中用正则批量加引号和逗号需两步:先用^(s.*)$匹配非空行并替换为"\1",,再用,\r?\n(?=\s*$)删末尾逗号,最后首加[尾加];含特殊字符需先转义,空行和空格须预处理。

Notepad++ 里用正则批量加引号和逗号
直接结论:用「查找替换」+ 正则表达式,两步就能把每行文本转成 "xxx" 格式并拼成数组元素。关键不是功能多,而是正则写对、换行处理准。
常见错误是只加引号不补逗号,或末尾多出逗号导致 JS/JSON 报错;还有人忽略空行、缩进、首尾空白,结果生成 "" 或带空格的字符串。
- 打开「查找 → 替换」(
Ctrl + H) - 勾选「正则表达式」,取消勾选「匹配大小写」和「全字匹配」
- 「查找目标」填:
^(S.*)$(匹配非空行,且跳过纯空白行) - 「替换为」填:
"", - 点「全部替换」
这一步后,每行变成 "xxx",,包括最后一行也带逗号——别急,这是故意的,方便下一步清理。
去掉末尾多余的逗号并套上方括号
不能手动删最后一行逗号,因为数据可能随时增减。更稳的方式是用正则一次性收尾。
- 再次打开替换对话框
- 「查找目标」填:
, ? (?=s*$)(匹配行末逗号 + 换行,且后面只有空白或文件结尾) - 「替换为」留空
- 点「全部替换」
- 最后在全文开头加
[,结尾加](可手动,也可用替换:查找^→ 替换为[;查找$→ 替换为])
注意:
?
兼容 Windows(
)和 Unix(
)换行;(?=s*$) 是正向先行断言,确保只删真正“结尾前”的那个逗号,不会误伤中间的 ","。
处理含双引号、反斜杠等特殊字符的原始数据
如果原始行里有 " 或 (比如日志片段、路径),直接加引号会破坏 JSON/JS 语法。这时候必须先转义。
- 先做一次预处理:查找
(["\]),替换为\$1(给每个"和前加反斜杠) - 再执行前面两步加引号和收尾
- 最终得到的是合法 JSON 字符串数组,可直接粘贴到 JS 或 Python 里用
别跳过这步——哪怕你当前数据看起来“没特殊字符”,复制粘贴过程中可能混入不可见字符(如零宽空格),建议养成先用「视图 → 显示符号 → 显示所有字符」检查的习惯。
为什么不用「列编辑」或插件
列编辑(Alt + 鼠标拖选)适合固定列数、对齐整齐的数据,但多数原始文本是左对齐、长度不一的,强行列选会导致部分行漏加引号;插件如 TextFX 已停止维护,新版 Notepad++ 不兼容,且配置复杂、不可复现。
正则方案唯一依赖就是 Notepad++ 自带的 PCRE 引擎,从 v7.9 到最新版行为一致,脚本化也容易——把上面两三个正则存成「宏」,下次一键运行即可。
最常被忽略的其实是空行和首尾空格。哪怕只有一行开头多个空格,^(S.*)$ 就会跳过它,结果数组里少一个元素。动手前先按 Ctrl + A → 「编辑 → 行操作 → 去除首尾空格」,比调正则省心。











