A Day in the Life

Ruby 1.8.7 の正規表現の最大文字数は約64500文字

Ruby 1.8.7 の正規表現の最大文字数は約64500文字

線形で大きくなる正規表現がいつの間にか "regular expression too big" で死んで困った。こんな RegexpError エラーあるんだね。Ruby レベルの定数等での制限でなく、c レベルの話なのでサクッと回避ができなくて場当たり的な対応ができなくて困った。そんなでかい正規表現作るなよという話は置いておきます。(Perl だと大きい正規表現作ってもどうにかなっていた気がする)

ちなみに ruby 1.9.2 はかなり大きい文字列でも大丈夫(深くは調べてない)

0]>______
記事の一覧 >

関連するかもエントリー

String を継承したクラスでのブロック内部の正規表現後方参照の挙動
String を継承したクラスでのブロック内部の正規表現後方参照の挙動class MyString < String def gsub(*args, &block) super end end puts String.new('123').gsub(/(\d)/...
String を継承したクラスでのブロック内部の正規表現後方参照の挙動class MyString < String def gsub(...
Ruby のバイナリが prelink により毎朝4時に壊れてセグフォになる
Ruby のバイナリが prelink により毎朝4時に壊れてセグフォになるtd-agent.rpm (fluentd の rpm)はパッケージ内に自分で使う Ruby を /usr/lib64/fluent/ruby/bin/ruby にもっている。td-agent の rpm...
Ruby のバイナリが prelink により毎朝4時に壊れてセグフォになるtd-agent.rpm (fluentd の rpm)はパッケ...
Ruby 1.9 で起動オプションで外部エンコーディングを指定する
Ruby 1.9 で起動オプションで外部エンコーディングを指定する1.9 をよく解ってないオールドタイプの secondlife ですこんばんは。Ruby 1.9 では外部エンコーディングの Encoding.default_external はロケール( $LANG )によて変...
Ruby 1.9 で起動オプションで外部エンコーディングを指定する1.9 をよく解ってないオールドタイプの secondlife ですこんば...