使用正则表达式删除任何空白或空白行
Remove any blank or whitespaced lines using regex
我正在尝试使用正则表达式查找并删除 OpenOffice 文档中的任何空白行或空白行。
目前我可以分两步完成:
搜索 ^$
并替换为空。
这将删除所有空行。
搜索 ^\s*$
并替换为空。
这将删除所有仅包含空格或制表符的行。
重要说明:从我的角度来看,第二版也应该删除任何空行(作为第一版),但实际上它没有。
所以,其实有两个问题。
为什么第二个正则表达式只匹配带空格和制表符的行,而不匹配空行?
有没有办法结合第一个和第二个版本一步到位达到预期的效果?这是我尝试过的:^$|^\s*$
和 (^|^\s*)$
。但它不起作用。它只匹配空白行,不匹配空行。
测试文本:
Just for example, I changed spaces to dots
and tabs to dashes.
aa
..........................
-------------------
aaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaa
想要的结果:
aa
aaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaa
AltSearch 可以使用批处理脚本一步完成。在 AltSearch 对话框中,单击 Batch >>
。然后 Edit
文件并在末尾粘贴以下代码。
[Name] Remove any blank or whitespaced lines
; Remove any lines which contains only spaces or tabs.
[Find]^\s*$
[Replace]
[Parameters] MsgOff Regular
[Command] ReplaceAll
; Remove any empty lines.
[Find]^$
[Replace]
[Parameters] MsgOff Regular
[Command] ReplaceAll
[End]
现在,保存文本文件并单击 Refresh
。最后,单击 Remove any blank or whitespaced lines
并按 Execute
。
这会产生所需的结果并显示一个对话框:
Batch 'Remove any blank or whitespaced lines' is ended.
10 replacements have been done.
因为你的问题的标题读起来像是在要求一个纯正则表达式(这就是我找到它的原因):
\s(?=\s)
我正在尝试使用正则表达式查找并删除 OpenOffice 文档中的任何空白行或空白行。
目前我可以分两步完成:
搜索
^$
并替换为空。这将删除所有空行。
搜索
^\s*$
并替换为空。这将删除所有仅包含空格或制表符的行。
重要说明:从我的角度来看,第二版也应该删除任何空行(作为第一版),但实际上它没有。
所以,其实有两个问题。
为什么第二个正则表达式只匹配带空格和制表符的行,而不匹配空行?
有没有办法结合第一个和第二个版本一步到位达到预期的效果?这是我尝试过的:
^$|^\s*$
和(^|^\s*)$
。但它不起作用。它只匹配空白行,不匹配空行。
测试文本:
Just for example, I changed spaces to dots
and tabs to dashes.
aa
..........................
-------------------
aaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaa
想要的结果:
aa
aaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaa
AltSearch 可以使用批处理脚本一步完成。在 AltSearch 对话框中,单击 Batch >>
。然后 Edit
文件并在末尾粘贴以下代码。
[Name] Remove any blank or whitespaced lines
; Remove any lines which contains only spaces or tabs.
[Find]^\s*$
[Replace]
[Parameters] MsgOff Regular
[Command] ReplaceAll
; Remove any empty lines.
[Find]^$
[Replace]
[Parameters] MsgOff Regular
[Command] ReplaceAll
[End]
现在,保存文本文件并单击 Refresh
。最后,单击 Remove any blank or whitespaced lines
并按 Execute
。
这会产生所需的结果并显示一个对话框:
Batch 'Remove any blank or whitespaced lines' is ended.
10 replacements have been done.
因为你的问题的标题读起来像是在要求一个纯正则表达式(这就是我找到它的原因):
\s(?=\s)