From: matz@... (Yukihiro Matsumoto) Date: 1998-05-20T12:30:21+09:00 Subject: [ruby-list:8027] Re: regexp difference with perl まつもと ゆきひろです In message "[ruby-list:8016] Re: regexp difference with perl" on 98/05/20, Inaba Hiroto writes: |> そうですね.今は違いはm optionだけだとおもうのですが | |いえ、結構あると思います。常に/mつきになっている他に、perl5.004_04との |違いとして、 ふぇぇ,結構あるですね.Perlは奥が深い…. |・\Gがない rubyにはm/RE/gがないんで作りようがないんですが,違いは違いで すね. |・(?i)等がない 忘れてました.GNU regexの実装上の都合で途中でignore caseを設 定できないんでした.原理的には可能なんですが…. # EXACTとEXACTiを分離するとか 他のオプションに関しても s,mはrubyにはない s,e,nは実装上の都合でムリそう xは…うーん…(後述). というのが現状です. |・/xがない これはかなり大きな違いですよね.原理的には可能なのですが,正 規表現ルーチンに手を入れるのは鬼門なので,ためらっています. |・/sが違う意味(.が\nにマッチする等) |・studyがない(効率だけの問題ですが) |・??がない(Perlのマニュアルに使うべきでないと記述のある機能ですが) これらは正規「表現」の違いではないような….「正規表現機能」 の違いではありますが. |逆にrubyの方にだけあるのは | |・漢字コードを示す /s、/e、/n | |・\<、\>がある。 | |ですね。 \<, \>は「記号のメタ文字は直前に\がつかない」というPerl正規 表現の大原則を崩すので,かなり長いこと「どーしよーかなー」と 思ってたのですが,「rubyならRegexp.quoteを使うだろう」という ことで,残したままになってます. |後、正規表現だけの話ではないですが、文字列展開で | |・\l, \u, \L, \U, \Q, \Eがない | |・\sがスペースに展開される(細かい事ですが) | |というのもあります。 これは「正規表現」の違いではないですが,これは違いとして受け 入れて頂こうと思います. |上記のように結構違うので、そのように書いてもらえればと思います。1.1b |or 1.1cの段階でいくつか取りこんでもらえればもっと良いのですが:-> そーですねえ.やったらできそうなのは x option (?i..) (?x..) くらいですか.だれか背中を押してくれると(あるいは代わりに実 装してくれると)できないことはないと思うのですが. # 違いは違いとしてそのままで良いというのも言えないことはない. まつもと ゆきひろ /:|)