タグ

ブックマーク / zenn.dev/makenowjust (1)

  • RubyKaigi 2023での発表の「2進数の足し算を計算する正規表現」の解説

    RubyKaigi 2023で「Make Regexp#match much faster」という発表をします、@makenowjust です。この発表では、ReDoS対策のためにRuby 3.2で導入された、正規表現マッチング (Regexp#match) の メモ化による最適化 について解説します。 さて、発表の中に次のようなスライドがあります。 このスライドはRubyの正規表現がいかに強力かを説明するためのもので、例として「2進数の足し算を計算する正規表現」を示しています。 また、このツイートで使っている正規表現も、実はこの正規表現です。 今回の記事では、この「2進数の足し算を計算する正規表現」の解説をしていきたいと思います。 「2進数の足し算を計算する正規表現」 コピペがしやすいように、スライドの画像ではなくテキストのコードで上の正規表現を出しておきます。 RE = /(?<s>[

    RubyKaigi 2023での発表の「2進数の足し算を計算する正規表現」の解説
    mas-higa
    mas-higa 2023/05/11
    "left, right, answer の長さが等しい" 繰り上がりができないんじゃなく、answer の桁数に合わせて left, right に前0を埋めればええんやね。
  • 1