最直接的加引号方法是用^和$分别匹配行首行尾并替换为单引号,需勾选正则表达式;含空行时应改用^(.+)$捕获非空行,替换为'$1';SQL/JSON场景还需处理逗号、括号及单引号转义。

用 ^ 和 $ 在行首行尾加引号最直接
不是所有“加引号”都要写复杂正则。如果你的文本每行一条干净数据(无空行、无前后空格),两步替换就能搞定:^ 匹配行首,$ 匹配行尾,都必须勾选「正则表达式」才生效。
常见错误是只做一次替换——比如只在行首加 ',忘了行尾;或者误把 ^ 当成普通字符输入,结果搜不到任何东西。
- 先按
Ctrl + H打开替换窗口,勾选「正则表达式」 - 「查找内容」填
^,「替换为」填',点「全部替换」 - 再把「查找内容」改成
$,「替换为」填',再点「全部替换」
这样每行就变成 'xxx'。注意:空行也会被处理,变成 '',如果不需要,得提前删空行或改用更精确的正则。
^(.+)$ 一次性包裹非空行,避免空行干扰
当原始数据里夹着空行、缩进或纯空白行时,^ 和 $ 会无差别匹配,导致生成一堆 ''。这时要用捕获组限定“有内容的行”。
关键不是“加引号”,而是“只对有效文本加”。^(.+)$ 中的 .+ 表示至少一个非换行字符,$ 后不接任何东西,确保它吃掉整行(包括末尾可能的空格)。
- 「查找内容」填
^(.+)$ - 「替换为」填
'$1'($1引用括号里捕获的内容) - 勾选「正则表达式」,取消「匹配大小写」和「全字匹配」
这个写法自动跳过空行和纯空白行。但如果某行开头有空格(比如缩进),.+ 仍会匹配它,引号会包住空格——此时应先执行一次 s*$ → 空,清理行尾空白。
SQL 或 JSON 场景下,加引号+逗号+去尾逗号要分三步走
直接拼 'xxx', 很容易在最后一行多出一个逗号,导致 SQL 报错 ORA-00936: missing expression 或 JSON 解析失败。不能靠手动删,得用正向先行断言精准定位“结尾前的那个逗号”。
- 第一步:用
^(.+)$→'$1',给每行加引号和逗号 - 第二步:用
,s*$(?!S)→ 空,删掉文件末尾那个孤立逗号((?!S)确保后面没非空白字符) - 第三步:开头加
(,结尾加),可用^→(和$→)分别替换
注意 Windows 换行是
,Unix 是
,所以 s* 比硬写
更兼容。如果数据含单引号(如 O'Reilly),得先做转义:查 ' → 替换为 ''(SQL)或 '(JSON)。
含特殊字符时,$1 和 g 效果不同
Notepad++ 的正则引擎不支持 g 这种 Python 风格的引用语法。你看到别人代码里写 r'"g"',那是 Python 的 re.sub(),在 Notepad++ 里会报错或无效。必须用 $1,且前提是查找内容里有括号捕获组。
比如想给每行加双引号,但原始行里有 " 字符,直接套会破坏结构。这时不能依赖 $1,得先转义:
- 先查
(["\])→ 替换为\$1(给每个"和前加反斜杠) - 再查
^(.+)$→"$1"
这里 ["\] 要写成两个反斜杠,因为第一个是正则转义,第二个是字符串转义——Notepad++ 里实际输入的是 (["\]),但显示为 (["\])。漏掉任一反斜杠,都会让引号逃逸失败。


















