[#20227] dyna_vars problem? — Tanaka Akira <akr@...17n.org>

しばらく前から、稀に Ruby が core を吐くという問題を追いかけているので

15 messages 2003/05/19
[#20234] Re: dyna_vars problem? — matz@... (Yukihiro Matsumoto) 2003/05/19

まつもと ゆきひろです

[#20236] Re: dyna_vars problem? — Tanaka Akira <akr@...17n.org> 2003/05/19

In article <1053363181.529491.30320.nullmailer@picachu.netlab.jp>,

[ruby-dev:20282] Re: /()*\1/ =~ ""

From: Tanaka Akira <akr@...17n.org>
Date: 2003-05-22 23:00:34 UTC
List: ruby-dev #20282
In article <5FD2F0CF7F5D7F44B00F36870B9E78B508DE502B@SBG-EX4>,
  kkosako@softbank.co.jp writes:

> captureの状態については、各captureについて1bitで済むような気がします。
>   0: マッチしていない or 空以外にマッチしている 
>   1: 空にマッチしている
>
> 繰り返しごとに、対象となっているすべてのcaptureに対して、
> 0 -> 1 の遷移が起きたかどうかチェックすれば十分?
> (あまり自信はないですが)

だいだい問題ないんじゃないでしょうか。

ただ、[ruby-dev:20225] にもちょっと書きましたが、MatchData#{begin,end}
がちょっと変わるかも知れないという気がします。

つまり、たとえば、
  /(?:()|a)*/ =~ "a"
が "a" にマッチする ($0 が "a" になる) として、() がマッチした位置
($~.begin(1), $~.end(0)) は 0 になるのか 1 になるのか、ということです。

まぁ、どっちだろうと全体がマッチするかどうかには関係ないといえばそうな
んですが。

また、/(?:()|a)*/ =~ "a" で $0 が "" になるような場合にはこんなことは
起こらないのかも知れません。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread

Prev Next