🐥
RUby で空の正規表現はなににマッチする?
気になったので試してみました。
# 空でない文字列にマッチする
pp // =~ "aaaa" # => 0
pp // =~ "ああ" # => 0
pp // =~ "+*=_" # => 0
# 空の文字列にもマッチする
pp // =~ "" # => 0
はい、こんな感じで全ての文字列にマッチする挙動になるようです。
この場合、どのような正規表現になるのかというと #to_s
を呼び出すと (?-mix:)
として定義されているみたいですね。
pp //.to_s
# => "(?-mix:)"
Discussion