使用 Regex 和 AltSearch 删除空行

Posted

技术标签:

【中文标题】使用 Regex 和 AltSearch 删除空行【英文标题】:Remove empty lines using Regex and AltSearch 【发布时间】:2017-07-29 02:34:55 【问题描述】:

我正在尝试使用 AltSearch 扩展名匹配此测试文件中的任何空格或空白行。出于某种原因,我无法匹配 bar bar 和第 4 行之间的空格。

这里是测试文件。为了将它发布到 Stack Overflow,我将空格更改为句点,将制表符更改为 TAB。 (当你将它改回来进行个人测试时,请注意,第 3 行下面有 TABTABTAB,很容易忽略)。

line1

line2
..............TAB

line3
TABTABTAB

foo foo
bar bar



line4


TAB..............

line5

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

line6

这是我的正则表达式的 2 个版本。两者对我来说都一样。

\p*^\s*\t*\p+
\p*^(\s||\t)*\p+

我知道,AltSearch 中的批处理脚本会更简单(而且我已经有了工作批处理)。我的兴趣是不使用批处理。

也不行。我不明白,也许这个 AltSearch 简直就是马车?

(\p*^\s*\p+)||(\p*^\p*)

【问题讨论】:

^(?:[\t ]*(?:\r?\n|\r))+ @0m3r 是的,但它在 LO 中不起作用。 ^\s*$ 带有多行标志应该可以工作。 \p[\s\n]*\p 怎么样?它应该匹配段落结尾和下一段结尾之间的任意数量的空格(包括制表符和换行符)。 @Aaron 我刚开始测试,但它是原始形式 - 不,它没有。我还添加了扩展链接。 【参考方案1】:

使用下面的正则表达式

^$

确保在展开“其他选项”部分后选中“正则表达式”复选框。

这是来自 LibreOffice 中 Help 的屏幕截图

理想情况下,^\s*$ 应该像我 commented 一样工作,奇怪的是它在 LO 中不起作用。

【讨论】:

以上是关于使用 Regex 和 AltSearch 删除空行的主要内容,如果未能解决你的问题,请参考以下文章

使用正则表达式删除星号和空行

vim删除空行和注释

vim删除空行和注释

使用宏删除 VB.NET 代码中的所有注释和空行的 Visual Studio 正则表达式

教你使用notepad++ 删除空行的方法技巧

Regex.Replace 替换空匹配