From: Tanaka Akira Date: 2003-03-31T18:29:19+09:00 Subject: [ruby-dev:19951] Re: [Oniguruma] Version 1.8.4 In article <200303301041.AA02742@moriq.moriq.com>, Kazuhiro Yoshida writes: > when /^--\[no-\]([^\[\]=\s]*)(.+)?/ > when /^--\[no-\]([^][=\s]*)(.+)?/ > > 完全に同じだとは感じませんね。 > > 上は、冗長な感じがするので読みにくい。 > 下は、[^] で切れているように見えるので読みにくい。 > > 逆に読みやすさについて書いてみると > > 上は、前から文字をたどっていき、 \] では閉じない(ことを知っている)ので、 > 閉じる位置が \s の次の ] であることがわかる。 > このように、文字の意味することが明確なので、明確でない下より読みやすい。 > > 下は、前から文字をたどっていき、[^] では閉じない(ことを知っている)ので、 > 閉じる位置が \s の次の ] であることがわかる。 > このように、簡潔な表現なので、簡潔でない上より読みやすい。 なるほど。重みづけの問題なわけですね。 > 文字クラスは [ で始まって ] で終わると、みなさんは知っていると思ったから。 > そして、[ とのつながりが ^ は ] より弱いと、みなさんが感じると思ったから。 > ほかの文字はその他大勢としてひとくくりにして見るだろうと、みなさんが(略) > …ということのように思います。 私もそう思います。つまり、多くの人に共通する感じかたもけっこうあるわけ です。そういう規則を利用して全般に読みやすくなるように細工するのは無理 だと思いますか? > …そうか。文字間の感じ方の距離(力? )を段階的に付けるなら、もっと多くの > 組み合わせがありますね。 > > [ ^ ] = \s ] > 1 2 3 3 0 4 > > とか。 えぇ、あり得ますね。ただ、10 と 11 の違いに意味を持たせるのはまず無謀 でしょうし、3 と 4 というのも微妙だとは思いますが。 >> > 何も考えなくて一番楽なのは ... >> > の規則を厳格に適用することですかね。 > 厳格に適用すれば > when /^--\[no-\]([^\[\]=\s]*)(.+)?/ > は許され > when /^--\[no-\]([^][=\s]*)(.+)?/ > は許されない…。あ、そうか。私は上記の規則から > > \を伴う英数字 はメタ文字である > \を伴わない記号 はメタ文字である > > も成り立つものだと考えてしまいました。 ふむ。厳格に適用して /^--\[no-\]([^][=\s]*)(.+)?/ は許されない、という ようにするのが、何も考えなくて一番楽、というわけですね。 >> > 結局今のがバランスが取れてるのかも。 >> >> えぇと、「今」というのはいつを指してますか? > > 1.6.8 とか 1.8.0 とか。この議論以前の時点という感じです。 (1.8.0 は変化してるのでなんともいえませんが) 1.6.8 なわけですね。 でも、1.6.8 は /^--\[no-\]([^][=\s]*)(.+)?/ を問題なく受け付けるのです が。 えーと、分からなくなってしまったんですが、もりきゅうさんはどんな仕様を 望んでいるんでしょうか? 1.6.8 のがバランスが取れてる という話は 1.6.8 みたいなのがいい、と読めますし、 \を伴わない記号 はメタ文字であるという規則を厳格に適用するのが何も考 えなくて一番楽 という話は 1.6.8 みたいなのはよくない、という感じを受けます。 -- [田中 哲][たなか あきら][Tanaka Akira]