Regex 如果字体中没有空格,请删除所有换行符CRLF

Regex 如果字体中没有空格,请删除所有换行符CRLF,regex,notepad++,Regex,Notepad++,我有以下案文: Today is Monday Tomorrow is Tuesday Sunday was beautiful, and sunshine Goodbye. 如下图所示,您可以看到空格(表示为)和特征线(表示为CRLF): 我想这样做: 如果CRLF(特征线)前面有空格,则不执行任何操作(保留CRLF) 否则,如果CRLF(特征线)前面没有空间,则移除CRLF(将2条线连接到1条线) 因此,我想要实现的结果如下所示: Today is Monday Tomo

我有以下案文:

Today is Monday  
Tomorrow is Tuesday
Sunday was beautiful,
and sunshine  
Goodbye.
如下图所示,您可以看到空格(表示为)和特征线(表示为CRLF):

我想这样做:

  • 如果CRLF(特征线)前面有空格,则不执行任何操作(保留CRLF)
  • 否则,如果CRLF(特征线)前面没有空间,则移除CRLF(将2条线连接到1条线)
因此,我想要实现的结果如下所示:

Today is Monday  
Tomorrow is TuesdaySunday was beautiful,and sunshine  
Goodbye.

我尝试了这个正则表达式:
^[^\r\n]*\r\n
并没有替换它,但它不工作,它删除了所有内容


好的正则表达式是什么?

请注意,
^[^\r\n]*\r\n
将一整行与尾部的
\r\n
匹配。因此,如果替换为空字符串,则删除整行

您可以使用
\R
构造,而不是硬编码换行符序列

如果要匹配前面没有子模式的内容,则需要使用负lookback。这里,一个
(?应该可以(不是任何水平空白)

所以,使用

(?<!\h)\R
替换将是一个空字符串


请注意,
^[^\r\n]*\r\n
将整行与尾随的
\r\n
匹配。因此,如果替换为空字符串,则删除整行

您可以使用
\R
构造,而不是硬编码换行符序列

如果您想匹配前面没有某个子模式的内容,则需要使用负lookback

所以,使用

(?<!\h)\R
替换将是一个空字符串


您可以用该字符替换任何不带空格的字符。因此,搜索
([^])\r\n
并替换为
\1
。但这可能会错误地处理空行。因此
([^\r\n])\r\n
可能是更好的搜索字符串。

您可以用该字符替换任何不带空格的字符。因此,搜索
([^])\r\n
并替换为
\1
。但这可能会错误地处理空行。因此
([^\r\n])\r\n
可能是更好的搜索字符串。

只是
(?)或
(?…并替换为空字符串。只需
(?)或
(?…并替换为空字符串即可。