regex - 使用正则表达式删除任何空白或空白行

标签 regex libreoffice openoffice.org

我正在尝试使用正则表达式查找并删除 OpenOffice 文档中的任何空白或空白行。

目前我可以分两步完成:

  1. 搜索 ^$ 并替换为任何内容。

    这将删除所有空行。

  2. 搜索 ^\s*$ 并替换为任何内容。

    这将删除所有仅包含空格或制表符的行。

    重要说明:从我的角度来看,第二个版本还应该删除所有空行(与第一个版本一样),但实际上并没有。

所以,实际上有两个问题。

  • 出于什么原因,第二个正则表达式仅匹配带有空格和制表符的行,但不匹配空行?

  • 有没有办法将第一个版本和第二个版本结合起来一步实现所需的结果?这是我尝试过的: ^$|^\s*$(^|^\s*)$。但这不起作用。它只匹配空白行,但不匹配空行。

测试文本:

Just for example, I changed spaces to dots
and tabs to dashes.


aa

..........................

-------------------

aaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaa

期望的结果:

aa
aaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaa

最佳答案

AltSearch可以使用批处理脚本将其作为一个步骤来完成。在 AltSearch 对话框中,单击Batch >>。然后编辑该文件并将以下代码粘贴到末尾。

[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]  

现在,保存文本文件并单击刷新。最后,单击删除任何空白行,然后按执行

这会产生所需的结果并显示一个对话框:

Batch   'Remove any blank or whitespaced lines'   is ended. 

10  replacements have been done.

关于regex - 使用正则表达式删除任何空白或空白行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44528155/

相关文章:

conditional-statements - 基于 LibreOffice Calc 中寻址当前行的公式的条件格式

c# - 使用 odbc 连接到 open office

delphi - Delphi的基本代码

C#:使用 ExcelPackage 获取行数/列数

regex - Autohotkey 使用正则表达式提取文本

regex - Linux 在 etc/shadow 文件上设置 root 密码

ruby - 使用 Ruby 扫描方法,捕获组无法按预期工作

libreoffice - 支持 getByName 的最简单的 Unostruct

正则表达式:为什么这种负面的前瞻不起作用?