Perlプログラミングのこの表現は何をしますか?
$variable =~ /^\s*$/;
Perlプログラミングのこの表現は何をしますか?
$variable =~ /^\s*$/;
これは、行開始(^)の後に0個以上の空白(\ s *)文字が続き、行末($)が続きます。
これは本質的に空白/空白行を探しています。
私は表現のようなものに使用されることを期待する:チェックし、次のアクションを実行するために
if ($v =~ /^\s*$/) {
# found a blank line
}
。
この操作の結果を変数に代入していないため、またテストする可能性のある副作用がないため、何もありません。あなたは
if ($variable =~ /^\s*$/)
{
print "something";
}
を言っている場合
はしかし、あなたは質問に答えることになります。
変数の値が空の行またはのような非印刷空白文字が、何からなるラインで構成されていますスペースとタブ?
真のアレックス、実際のステートメントは、ファイルからデータを読み込み、条件が 次のif($ variable =〜/^\ s * $ /); – swapnil
その場合は、 "ファイル内の空白行をスキップする"という意味です。 –
アレックス、技術的には完全には正しくありません。たとえ結果を変数に代入しなくても、Perlでの正規表現検索には多くの副作用があります。例えば、$&変数は最後の一致を保持しているので、次のように次の行でそれを使うことができます:if(defined $&){...} –
=~
は一致演算子です。
$変数がスペースのみで構成されているか、単純に空の場合、このステートメントは真を返します。
文字列が空であるかどうかを確認するだけです。
if ($variable =~ /^\s*$/)
は、句「任意の数」は少しあいまいです
unless ($variable =~ /\S/)
または
if ($variable !~ /\S/)
と同じであり、私の代わりにゼロ個以上の空白文字を言うでしょう。 –
私はもう少し明示的に編集しました –