[#41278] [BUG:1.9] BINARY should not be ASCII-compatible — Yugui <yugui@...>

WXVndWkbJEIkRyQ5ISMbKEIKCgo+IBskQiRHISIkKiQqJGAkTSQzJDMkXiRHJE41RE9AJEclKyVQ

15 messages 2010/05/11

[#41407] [Bug #3339] win32ole test failure — Usaku NAKAMURA <redmine@...>

Bug #3339: win32ole test failure

20 messages 2010/05/25
[#41411] Re: [Bug #3339] win32ole test failure — Masaki Suketa <masaki.suketa@...> 2010/05/25

助田です。

[#41412] Re: [Bug #3339] win32ole test failure — "U.Nakamura" <usa@...> 2010/05/25

こんにちは、なかむら(う)です。

[ruby-dev:41292] Re: 正規表現オブジェクト中のキャプチャの数

From: "KISHIMOTO, Makoto" <[email protected]>
Date: 2010-05-12 01:02:01 UTC
List: ruby-dev #41292
きしもとです

> > if ptn.numcapturs > 0 then raise end のようにチェックするのですが、
> >
> > 名前付きキャプチャもonig_number_of_capturesで数えられるのでfalse
> > negativeではないですし、名前付きキャプチャは普通のキャプチャとしても働くので、
> > false positiveでもなく、問題ないはずではないでしょうか?
> 
> 名前付きキャプチャは普通のキャプチャのようにインデックスで引けるんですが、
> 一方で名前付きキャプチャが入ると普通のカッコではキャプチャされなくなるんですよ。
> 
> > "でてこいいけのこい".gsub_multi([/(?<a>こい)/, /いけ/], ["いけ", "こい"])
> TypeError: no implicit conversion from nil to integer
>         from (irb):14:in `[]'
>         from (irb):14:in `block in gsub_multi'
>         from (irb):12:in `gsub'
>         from (irb):12:in `gsub_multi'
>         from (irb):20
>         from /home/naruse/local/ruby-trunk/bin/irb:12:in `<main>'

/foo/, /bar/, /baz/ から /(foo)|(bar)|(baz)/ のような Regexp を作って、
マッチさせて、$~.captures.index{|x|x} で何番目がマッチしたか見つけているので、
通常のキャプチャであっても、入力中に存在すると、ずれるので困るわけです。

なので、キャプチャが入力にあったらエラーにする、というチェックを入れる、と。
名前付きキャプチャが入力にある場合も、それを見つけてエラーにするだけです。

In This Thread