Notepad++ - 将 SQL 服务器的大查询变成一行
Notepad++ - Turn big query from SQL Server into one line
我在 notepad++ 中从 SQL 服务器发出了一个大查询(1012 行),我只想将此查询传递给一行。例如,我有这个:
SELECT *
FROM tableA
WHERE Field_A = 1
我想传递给这个:
SELECT * FROM tableA WHERE Field_A = 1
我正在尝试使用以下代码:
- 打开“替换”对话框 ( Ctrl + H )
- 选中环绕选项
- 选择正则表达式搜索模式
- 在查找内容中填写正则表达式
(\h*\R)+
:区域
- 在替换为:区域中填写正则表达式
\x20
- 单击“全部替换”按钮
但它为我创建了更多新行,代码之间有一个很大的 space。
我该怎么做?
您应该能够用单个 space 替换行结尾的 \r\n
。请注意,我将 \r
设为可选,以防您可能在 Linux 上,其中行结尾只是 \n
.
查找:
\r?\n
替换:
[single space]
这将确保在上一行的结尾和当前行的开头之间至少有一个 space。额外的白色space 不应导致 SQL 查询被错误解析。
1. Open the Replace dialog ( Ctrl + H )
2. Check the Wrap around option
3. Choose the Extended search mode
4. Fill in the regex \r\n in the Find what: zone
5. Put one white space in the Replace with: zone
6. Click on the Replace All button
根据您的换行约定,第 4 步可能是:
4bis. Fill in the regex \n in the Find what: zone
您可以使用以下方式显示换行符:
View -> Show symbols -> Show end of lines
。
如果显示 CRLF
,执行第 4 步将回答您的问题。如果您看到 LF
,您将需要执行第 4 步之二。
根据 Tim Biegeleisen 的建议,您还可以使用正则表达式搜索模式(步骤 3)并填写正则表达式 \r?\n
。这两者同时完成。
您必须删除换行符后的空格,使用此正则表达式 (?:\h*\R\h*)+
- Ctrl+H
- 查找内容:
(?:\h*\R\h*)+
- 替换为:
A SINGLE SPACE
- 选中环绕
- 检查正则表达式
- 全部替换
解释:
(?: : start non capture group
\h* : 0 or more horizontal spaces
\R : any kind of linebreak (ie. \r, \n, \r\n)
\h* : 0 or more horizontal spaces
)+ : end group, repeated 1 or more times
替换:
A single space
举个例子:
SELECT *
FROM tableA
WHERE Field_A = 1
给定示例的结果:
SELECT * FROM tableA WHERE Field_A = 1
我在 notepad++ 中从 SQL 服务器发出了一个大查询(1012 行),我只想将此查询传递给一行。例如,我有这个:
SELECT *
FROM tableA
WHERE Field_A = 1
我想传递给这个:
SELECT * FROM tableA WHERE Field_A = 1
我正在尝试使用以下代码:
- 打开“替换”对话框 ( Ctrl + H )
- 选中环绕选项
- 选择正则表达式搜索模式
- 在查找内容中填写正则表达式
(\h*\R)+
:区域 - 在替换为:区域中填写正则表达式
\x20
- 单击“全部替换”按钮
但它为我创建了更多新行,代码之间有一个很大的 space。
我该怎么做?
您应该能够用单个 space 替换行结尾的 \r\n
。请注意,我将 \r
设为可选,以防您可能在 Linux 上,其中行结尾只是 \n
.
查找:
\r?\n
替换:
[single space]
这将确保在上一行的结尾和当前行的开头之间至少有一个 space。额外的白色space 不应导致 SQL 查询被错误解析。
1. Open the Replace dialog ( Ctrl + H )
2. Check the Wrap around option
3. Choose the Extended search mode
4. Fill in the regex \r\n in the Find what: zone
5. Put one white space in the Replace with: zone
6. Click on the Replace All button
根据您的换行约定,第 4 步可能是:
4bis. Fill in the regex \n in the Find what: zone
您可以使用以下方式显示换行符:
View -> Show symbols -> Show end of lines
。
如果显示 CRLF
,执行第 4 步将回答您的问题。如果您看到 LF
,您将需要执行第 4 步之二。
根据 Tim Biegeleisen 的建议,您还可以使用正则表达式搜索模式(步骤 3)并填写正则表达式 \r?\n
。这两者同时完成。
您必须删除换行符后的空格,使用此正则表达式 (?:\h*\R\h*)+
- Ctrl+H
- 查找内容:
(?:\h*\R\h*)+
- 替换为:
A SINGLE SPACE
- 选中环绕
- 检查正则表达式
- 全部替换
解释:
(?: : start non capture group
\h* : 0 or more horizontal spaces
\R : any kind of linebreak (ie. \r, \n, \r\n)
\h* : 0 or more horizontal spaces
)+ : end group, repeated 1 or more times
替换:
A single space
举个例子:
SELECT *
FROM tableA
WHERE Field_A = 1
给定示例的结果:
SELECT * FROM tableA WHERE Field_A = 1