2016-04-24 12 views
0

文字列からすべての空白行を削除しようとしています。私の文字列は、空の空白行がたくさんある段落で、私はそれを整理しようとしています。perl regexは数字と文字列を返しません。

例:

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 

のthatsすべてのそれは返し、ない言葉、無段落私のコードは、この

それは最初に一致すると仮定して

とのように見える

一致した後にすべての単語を印刷する そして私はすべての空白行を削除して出力をクリーンアップします。

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

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

$ shorten部分は完全に動作しますが、$ 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

関連する問題