[#42243] コミュニティと宗教の分離について — Beyond <beyond@...>

14 messages 2006/05/21

[#42267] メニューのループについて — リックス <rubyer4649@...>

りっくすです

21 messages 2006/05/27

[#42301] Re: メニューのループについて — "conundrum /" <conundrum@...>

conundrumです。

11 messages 2006/05/28

[ruby-list:42234] Re: 強欲な正規表現のマッチングで core を吐く

From: "NARUSE, Yui" <naruse@...>
Date: 2006-05-20 14:20:39 UTC
List: ruby-list #42234
成瀬です。

Tanaka Akira wrote:
> 挑戦しないようにするには、そんなところで分割しないようにすれ
> ばいいわけで、
> 1. [^()]+ 同士が隣接しないようにパターンの構造を変える、
> 2. 直後が括弧であると先読みで指定する、
> 3. バックトラックを抑制する、
> といった方法があります。

思った以上に簡単に抑制できるのですね、参考になります。

ところで、3のバックトラックを抑制する方法ですが、
nested_parentheses =
  /(?<pare>   \( ([^\(\)]++ | \g<pare>)*+ \)  )/x
nested_parentheses =~ "((a))"
のように *+ とすると core を吐きます。

-- 
NARUSE, Yui  <naruse@airemix.com>
DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA

In This Thread