🐥

RUby で空の正規表現はなににマッチする?

2024/02/09に公開

気になったので試してみました。

# 空でない文字列にマッチする
pp // =~ "aaaa"   # => 0
pp // =~ "ああ"   # => 0
pp // =~ "+*=_"   # => 0

# 空の文字列にもマッチする
pp // =~ ""   # => 0

はい、こんな感じで全ての文字列にマッチする挙動になるようです。
この場合、どのような正規表現になるのかというと #to_s を呼び出すと (?-mix:) として定義されているみたいですね。

pp //.to_s
# => "(?-mix:)"
GitHubで編集を提案

Discussion