Time to Read
7~8分
先読み
例えば、「1000の累乗」の数値表現(たとえば 1000, 1000000, 1000000000)にマッチする正規表現を考える。素直に考えれば、
1 | /1(?:000)+/ |
となると思うが、これだと、以下のような文字列でもマッチしてしまう。
1 2 | "hogehoge10000000hogehoge".scan(/(1(?:000)+/) => ["1000000"] |
「10000000=10,000,000」は当然1000の累乗ではないが、後ろのゼロ1つを除いた形でマッチしてしまうということだ。
そこで、先読みが登場する。
(思った以上に長々しくなったので以下を畳みます。。)
Read the rest of this entry »




