文字列が空行を含むか判定する
文字列が空行もしくは空行を含むか判定するには、正規表現を使って以下のようする。
空行は空文字列か改行のみで構成される行とする。
p /^$/ =~ "" #=> 0 p /^$/ =~ " " #=> nil p /^$/ =~ "\n" #=> 0 p /^$/ =~ "abc" #=> nil p /^$/ =~ "abc\n" #=> nil p /^$/ =~ "abc\n\n" #=> 4 p /^$/ =~ "abc\n\ndef" #=> 4
これの変形として、空白文字で構成される行も空行とみなすには以下のように書ける。
p /^\s*$/ =~ "" #=> 0 p /^\s*$/ =~ " " #=> 0 p /^\s*$/ =~ "abc" #=> nil p /^\s*$/ =~ "abc\n" #=> nil p /^\s*$/ =~ "abc\n\t" #=> 4 p /^\s*$/ =~ "abc\n\t\n" #=> 4 p /^\s*$/ =~ "abc\n\t\ndef" #=> 4
なお^
は行頭を、$
は行末を表す正規表現で、文字列の先頭と末尾でない事に注意。
もし常に単一行を処理するなら、文字列の先頭と末尾を表す\A
と\z
を使って、以下のように書いたほうが正確である。
p /\A\s*\z/ =~ "" #=> 0