成瀬です。 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