[#16708] includedir — nobu.nakada@...
なかだです。
[#16732] sharing sub-regexp — Tanaka Akira <akr@...17n.org>
Oniguruma についてひとつ要望があります。
Tanaka Akiraさんの<hvopu1hxfyd.fsf@coulee.a02.aist.go.jp>から
まつもと ゆきひろです
In article <1017890618.302241.17865.nullmailer@ev.netlab.jp>,
Tanaka Akiraさんの<hvo7knn93ug.fsf@coulee.a02.aist.go.jp>から
In article <20020405044506.D4784349@helium.ruby-lang.org>,
Tanaka Akiraさんの<hvopu1e4omy.fsf@coulee.a02.aist.go.jp>から
In article <20020410025054.C8DF0915@helium.ruby-lang.org>,
In article <hvor8lnchak.fsf@coulee.a02.aist.go.jp>,
前田です。
In article <87pu15z80q.wl@studly.priv.netlab.jp>,
前田です。
In article <87g01x1e6m.wl@studly.priv.netlab.jp>,
西山和広です。
In article <20020416180631.988E.ZN@mbf.nifty.com>,
前田です。
In article <87u1qaj0xe.wl@studly.priv.netlab.jp>,
前田です。
まつもと ゆきひろです
In article <1019116103.420173.12691.nullmailer@picachu.netlab.jp>,
前田です。
なかだです。
In article <200204181023.g3IANgM21124@sharui.nakada.kanuma.tochigi.jp>,
まつもと ゆきひろです
In article <1019140164.869863.14833.nullmailer@picachu.netlab.jp>,
[#16757] === — "Akinori MUSHA" <knu@...>
Array, Hash, Proc などで、 === が以下のように定義されていると
[#16761] StringIO — tadf@...
ふなばです。
なかだです。
ふなばです。
なかだです。
ふなばです。
青山です。
まつもと ゆきひろです
In article <1022740594.117106.6073.nullmailer@picachu.netlab.jp>,
前田です。
In article <874rgqdt3x.wl@studly.priv.netlab.jp>,
青山です。
まつもと ゆきひろです
青山です。
まつもと ゆきひろです
青山です。
まつもと ゆきひろです
青山です。
[#16776] Ruby 1.7.2 segfault — takuma ozawa <metal@...>
小澤といいます。
なかだです。
[#16790] Ruby Shim — "Akinori MUSHA" <knu@...>
1.7 early access kit という仮称で提案した構想ですが、先ほど
新井です。
At Tue, 9 Apr 2002 02:12:27 +0900,
なかだです。
[#16816] remove_const: cannot remove constant — Koji Arai <JCA02266@...>
新井です。
[#16833] math.c 1.10 — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
まつもと ゆきひろです
さくです。
なかだです。
まつもと ゆきひろです
[#16868] make error on debian potato — Wakou Aoyama <wakou@...>
青山です。
[#16869] Makefiles dependency — nobu.nakada@...
なかだです。
わたなべです。
なかだです。
わたなべです。
なかだです。
わたなべです。
なかだです。
[#16894] compile failure in process.c, setpgrp() & setpgid() — Ryo HAYASAKA <ryoh@...>
早坂@北陸先端です.
[#16923] Module::new with block is useful? — "Shin'ya Adzumi" <adzumi@...>
あづみです。
[#16978] Re: [rubyist:1343] Re: another sample for the Method — Koji Arai <JCA02266@...>
新井です。
[#16989] making Proc in C (Re: [rubyist:1356] Re: another sample for the Method) — nobu.nakada@...
なかだです。
[ruby-dev:16753] Re: sharing sub-regexp
In article <1017890618.302241.17865.nullmailer@ev.netlab.jp>,
matz@ruby-lang.org (Yukihiro Matsumoto) writes:
> |(正規表現の拡張なので、まつもとさんに確認が必要でしょうが。)
>
> 名前。Pythonと.NETのそれぞれで正規表現にこの機能が追加されて
> いますが、名前が違います。なぜかPerlにはないんですよね。
えぇと、この Python や .NET のは shy group を含まないので微妙にずれて
いたりするんですがそれはそれとすると、想像ですが、Perl では名前を付け
ても Perl のコードからアクセスすることができない(MatchData に対応する
ものがないので特殊変数をさらに増やす必要がある)から入れにくいんじゃな
いですかね。
Python では MatchObject (Ruby でいう MatchData) があるので、group メソッ
ドに名前を文字列で渡すことにより自然に取り出せます。
Ruby にあってもべつに問題ない機能だと思います。$~[:name] とかで取り出
せばいいのでしょう。たぶん、とても便利だと思います。
たとえば、最近、
if /(\A\z)
|(\A\*)
|(\A\d\.)
|(\A:)
|(\A\s)
|(\A---)
|(\A=)
|(\A\|\s)
/x =~ line
if $~[1]; '_'
elsif $~[2]; 'u'
elsif $~[3]; 'o'
elsif $~[4]; 'd'
elsif $~[5]; 'i'
elsif $~[6]; 'h'
elsif $~[7]; enable_section ? 's' : 'X'
elsif $~[8]; 't'
end
というコードを書いたのですが、このコードでは番号の対応をとるのが厄介で
す。もし、
if /(?<empty>\A\z)
|(?<unordered>\A\*)
|(?<ordered>\A\d\.)
|(?<definition>\A:)
|(?<indent>\A\s)
|(?<hr>\A---)
|(?<section>\A=)
|(?<table>\A\|\s)
/x =~ line
if $~[:empty]; '_'
elsif $~[:unordered]; 'u'
elsif $~[:ordered]; 'o'
elsif $~[:definition]; 'd'
elsif $~[:indent]; 'i'
elsif $~[:hr]; 'h'
elsif $~[:section]; enable_section ? 's' : 'X'
elsif $~[:table]; 't'
end
と書けるんならとても幸せです。まぁ、この場合は普通のマッチなので、それ
ぞれのパターンで別個にマッチさせてもいいのですが、String#scan や
String#gsub だとそうもいきません。
なお、Python のやつは単に番号に対して alias を付けるだけな感じですが、
.NET ではそれだけではないところには注意しないといけないかも知れません。
たとえば、複数のグループに同じ名前を付けることができるので、
href=(?:"(?<val>[^"]*)"|(?<val>[^ >]*)
というような用途に使えたり、他にもいろいろな機能に関係しているようです。
--
[田中 哲][たなか あきら][Tanaka Akira]
「ふえろ! わかめちゃん作戦です$(C⊇」(Little Worker, 桂遊生丸)