首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用regex删除所有空行或空格行

使用regex删除所有空行或空格行
EN

Stack Overflow用户
提问于 2017-06-14 01:39:13
回答 2查看 705关注 0票数 2

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

目前我可以通过两个步骤来完成:

  1. 搜索^$并替换为空。

这将删除所有空行。

  • 搜索^\s*$并替换为空。

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

重要提示:从我的角度来看,这个第二个版本也应该删除任何空行(作为第一个版本),但实际上它没有。

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

  • 为什么第二个正则表达式只匹配带有空格和制表符的行,而不匹配空行?
  • 有没有办法将第一个版本和第二个版本结合在一起,在一步中达到预期的结果?下面是我尝试过的:^$|^\s*$(^|^\s*)$。但它不起作用。它只匹配空白行,而不匹配空行。

测试文本:

代码语言:javascript
复制
Just for example, I changed spaces to dots
and tabs to dashes.


aa

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

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

aaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaa

期望的结果:

代码语言:javascript
复制
aa
aaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaa
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-14 14:30:28

AltSearch可以使用批处理脚本作为单个步骤完成此操作。在AltSearch对话框中,单击Batch >>。然后对文件执行Edit操作,并将以下代码粘贴到最后。

代码语言:javascript
复制
[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

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

代码语言:javascript
复制
Batch   'Remove any blank or whitespaced lines'   is ended. 

10  replacements have been done.
票数 1
EN

Stack Overflow用户

发布于 2019-01-07 08:16:49

因为你问题的标题读起来像是在问一个纯粹的正则表达式(这就是我找到它的原因):

代码语言:javascript
复制
\s(?=\s)

只需将其匹配项替换为空-参见Regex101Regexr

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44528155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档