2017-02-22 59 views
1

我輸入的文件中像這樣如何使用正則表達式來刪除兩行之間的空格?

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

回答

1

是的,你也可以嘗試像下面尋找空行和刪除它們。

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

看到demo

+0

是的,暹羅它可能會更好 –

0

薩赫勒的解決方案並不像精緻的,因爲它可以:

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

這將以較少的步驟提供相同的結果。

用這個非常簡單的任務記住的要點是使用「替代品」(管道|)爲您的模式添加了步驟,應儘可能避免使用這些步驟。

如果需要替代品,請將替代品從最短到最長 - 這將提供更高的效率。

最後,不要在模式中重複字符,使用量詞 - 這又會提高性能。當比較\n\n\s|\n\s\n{2}\s|\n\s時,後者將僅使用{2}量詞而勝過前者。

相關問題