如何使用正则表达式来删除两行之间的空格?

问题描述:

我输入的文件中像这样如何使用正则表达式来删除两行之间的空格?

Header1,,,,,,,,,,, 
c1 , c2 , c3 ,,,, 

22-02-2017,1-2,10,,,, 
22-02-2017,2-3,11,,,, 

22-02-2017,4-6,10,,,, 
22-02-2017,5-8,11,,,, 

我需要的正则表达式才达到预期的输出如下:

Header1,,,,,,,,,,, 
c1 , c2 , c3 ,,,, 
22-02-2017,1-2,10,,,, 
22-02-2017,2-3,11,,,, 
22-02-2017,4-6,10,,,, 
22-02-2017,5-8,11,,,, 

我想这正则表达式搜索\ S \ n的REplaceTExt和重置价值为\ n。

更换后的文本输出内容,如下面,

Header1,,,,,,,,,,,c1 , c2 , c3 ,,,,22-02-2017,1-2,10,,,,22-02-2017,2-3,11,,,,22-02-2017,4-6,10,,,, 

但我的正则表达式中regexr网站完美。

http://regexr.com/3fbse

是否有任何其他的正则表达式来查找空行前和空行的合并后的行?

+0

你用什么命令编辑文件? (即。sed,perl,...) – grail

+0

不,我没有使用任何命令。我只是在regexr网站只匹配 –

+0

所以你的目标是编辑文件或其他东西? – grail

搜索:\n\n\s|\n\s

替换:\n

Regex Demo

是的,你也可以尝试像下面寻找空行和删除它们。

regex search >> /\n+/g 
replace with >> \n 

看到demo

+0

是的,暹罗它可能会更好 –

萨赫勒的解决方案并不像精致的,因为它可以:

您可以使用此模式相匹配:\n+\s\n取代。 Demo

这将以较少的步骤提供相同的结果。

用这个非常简单的任务记住的要点是使用“替代品”(管道|)为您的模式添加了步骤,应尽可能避免使用这些步骤。

如果需要替代品,请将替代品从最短到最长 - 这将提供更高的效率。

最后,不要在模式中重复字符,使用量词 - 这又会提高性能。当比较\n\n\s|\n\s\n{2}\s|\n\s时,后者将仅使用{2}量词而胜过前者。