2016-04-24 35 views
0

我試圖從字符串中刪除所有空行。我的字符串是一個有很多隨機空行的段落,我試圖清理它。perl正則表達式返回數字並且沒有字符串

如:

this is an example 

lots of empty 

lines 

in the paragraph 

應該

this is an example 
lots of empty 
lines 
in the paragraph 

我目前只使用代碼返回隨機數字..其作爲如果做字數什麼的。

output = 567 

output = 221 

多數民衆贊成它返回,沒有言語,沒有段落

我的代碼看起來像這樣

它首先假設匹配和然後打印比賽後的所有單詞 然後我wa nted刪除所有的空行來清理輸出

my ($shorten) = $origin =~ /word to match\s*(.*)$/s; 

my ($cleanlines) = $shorten =~ s/\n//g; 

的$縮短部分作品完美,但$ cleanlines部分不工作。

回答

3

此行

my ($cleanlines) = $shorten =~ s/\n//g; 

刪除$shorten所有換行符和存儲如果你想從$shorten刪除空行,那麼你必須,而不是寫這個

$cleanlines

所做的更改的數量

(my $cleanlines = $shorten) =~ s/^\s*\n//gm; 
0

my ($shorten) = $origin =~ /word to match\s*(.*)$/s;因爲您使用捕獲圓括號你的正則表達式,以及與(*.)相匹配的結果都是$shorten

要從字符串中刪除空行,你可以使用這個簡單的正則表達式:

$shorten =~ s/\n+\n/g; 

的替代將在$shorten變量進行。如果你想保持$shorten不變,並有一個新的變量清理線,後來乾脆的$shorten的內容複製到一個新的變量,並對其執行替代:

my $cleanlines = $shorten; 
$cleanlines =~ s/\n+/\n/g; 
+0

這不會刪除的行除空格或製表符外爲空,但可能是所有必需的 – Borodin

相關問題