notepad++用正则批量加引号需定位文本边界:匹配独立单词用(\b\w+\b),匹配含连字符等字符串用(1+),替换为'$1'或"$1";含已有引号时需用负向先行断言跳过,避免嵌套。\s,;:\(\)\{\}\[\]\"\'\t\n ↩

用正则表达式批量给字符串加引号
Notepad++ 本身不提供“选中字符串自动加符号”的一键功能,但通过「查找替换 + 正则」能高效完成,前提是字符串有明确边界(比如被空格、逗号、换行或括号分隔)。关键不是“识别字符串”,而是“定位你想处理的文本片段”。
常见错误是直接搜索 "abc" 这类内容——这只能手动改,毫无批量意义。真正实用的是匹配“非空白+非分隔符”的连续字符块。
- 打开
Ctrl + H,勾选「正则表达式」模式 - 查找目标(例如加单引号):
(\b\w+\b)→ 匹配独立单词(含下划线),但不匹配带点/引号/括号的字符串 - 更通用的写法(适配含连字符、点号的 ID 或路径):
([^\s,;:\(\)\{\}\[\]\"\'\t\n]+) - 替换为:
'$1'(单引号)或"$1"(双引号)
处理带引号的原始字符串(避免嵌套引号)
如果原文已含引号(如 name: "user"),直接套用 "$1" 会变成 "\"user\"",引发语法错误。这时候必须先排除已有引号包裹的内容。
解决思路:用负向先行断言(Notepad++ 7.9+ 支持)跳过已被引号包围的字段。
- 查找:
(? → 匹配前后都不是引号的单词 - 替换:
"$1" - 注意:该正则不适用于引号紧贴字母的情况(如
"abc"中的abc),需手动跳过
按列模式快速加前缀/后缀(适合整齐排列的值)
当字符串垂直对齐(如配置文件的 value 列),列编辑比正则更稳、更直观,且完全规避正则陷阱。
- 按住
Alt键,鼠标拖选目标列区域(出现虚线框) - 输入要加的符号,比如
',会在每行开头插入 - 再用同样方式选中末尾一列(可先
End定位到行尾),输入' - 适用场景:CSV 某列补引号、日志中统一包一层
[ ]、SQL 的VALUES行批量加括号
为什么不用宏录制?
Notepad++ 宏本质是按键回放,对位置敏感,一旦某行少一个字符,后续全部错位。而正则靠文本模式匹配,列编辑靠视觉定位——两者都比宏可靠得多。
容易被忽略的一点:Notepad++ 默认正则引擎不支持 \K 和 Unicode 属性(如 \p{L}),遇到中文或 emoji 字符串,得改用 [^\s,;:\(\)\{\}\[\]\"\'\t\n]+ 这种显式排除写法,否则会截断或漏匹配。











