2009-06-11 13 views
1

Perlプログラミングのこの表現は何をしますか?

$variable =~ /^\s*$/; 

答えて

16

これは、行開始(^)の後に0個以上の空白(\ s *)文字が続き、行末($)が続きます。

これは本質的に空白/空白行を探しています。

私は表現のようなものに使用されることを期待する:チェックし、次のアクションを実行するために

if ($v =~ /^\s*$/) { 
    # found a blank line 
} 

+0

と同じであり、私の代わりにゼロ個以上の空白文字を言うでしょう。 –

+0

私はもう少し明示的に編集しました –

1

この操作の結果を変数に代入していないため、またテストする可能性のある副作用がないため、何もありません。あなたは

if ($variable =~ /^\s*$/) 
{ 
    print "something"; 
} 

を言っている場合

はしかし、あなたは質問に答えることになります。

変数の値が空の行またはのような非印刷空白文字が、何からなるラインで構成されていますスペースとタブ?

+0

真のアレックス、実際のステートメントは、ファイルからデータを読み込み、条件が 次のif($ variable =〜/^\ s * $ /); – swapnil

+0

その場合は、 "ファイル内の空白行をスキップする"という意味です。 –

+2

アレックス、技術的には完全には正しくありません。たとえ結果を変数に代入しなくても、Perlでの正規表現検索には多くの副作用があります。例えば、$&変数は最後の一致を保持しているので、次のように次の行でそれを使うことができます:if(defined $&){...} –

1

=~は一致演算子です。

$変数がスペースのみで構成されているか、単純に空の場合、このステートメントは真を返します。

文字列が空であるかどうかを確認するだけです。

1
if ($variable =~ /^\s*$/) 

は、句「任意の数」は少しあいまいです

unless ($variable =~ /\S/) 

または

if ($variable !~ /\S/) 
関連する問題