[#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:20214] Re: /()*\1/ =~ ""

From: Tanaka Akira <akr@...17n.org>
Date: 2003-05-19 07:21:54 UTC
List: ruby-dev #20214
In article <5FD2F0CF7F5D7F44B00F36870B9E78B508DE5022@SBG-EX4>,
  kkosako@softbank.co.jp writes:

> 説明が不正確でした。
> 繰り返しを終了するのではなくて、繰り返しを中断して、
> 繰り返しの後の部分に処理が移動します。
> そこで失敗するとバックトラックして、もしも繰り返しの中に他の選択肢が残ってい
> れば
> それを実行します。
>
> 上記の例だと、
> () => 繰り返し中断 => 失敗 => (b) => () => 繰り返し中断 => 成功
> となります。

なるほど。

とすると、空文字列を含んでいる場合の greedy さが非直観的になるのか、な?

% ./ruby -rpp -e 'pp /(?:a|()|b)*/.match("abababab")'
#<MatchData "a" "">

とか。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread

Prev Next