仅当下一行为空行时才匹配行

Match line only if next line is an empty Line

我对正则表达式很陌生,我想做的是仅当下一行是空行时才匹配一行。

例如:

  1. 这是一些文字
  2. (空行)
  3. 这是一些文字
  4. 这是一些文字
  5. 这是一些文字
  6. (空行)
  7. 这是一些文字
  8. (空行)

在前面的示例中,我希望能够 select 仅第 1、5、7 行。

记事本++中的正则表达式是否可行?

提前致谢。

您可以尝试以下基于正向预测的正则表达式。

^.*?\S.*(?=\n[ \t]*$)

\S 匹配任何非 space 字符。所以 .*?\S.* 匹配至少有一个非 space 字符的行,下面的 (?=\n[ \t]*$) 断言匹配后必须跟一个换行符,然后是零个或多个 space 或制表符。

^.*?\S.*(?=\n\n)

如果您将空行表示为没有任何单个 space 或制表符的行,那么您可以使用上面的正则表达式。 (?=\n\n) 断言匹配后必须跟一个空行。

DEMO 1

DEMO 2

这应该可以解决问题:

/(.)*\n\n/

如果您正在寻找一种简单的方法来测试/验证正则表达式 rubular 非常好。

你可以使用这个正则表达式,

(.*)\n\s*\n

并替换为


Working Demo

它使用了group capture的概念,所以这里可以使用来使用捕获组,即换行前的行