まつもと ゆきひろです

In message "[ruby-list:8016] Re: regexp difference with perl"
    on 98/05/20, Inaba Hiroto <inaba / st.rim.or.jp> 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..)

くらいですか.だれか背中を押してくれると(あるいは代わりに実
装してくれると)できないことはないと思うのですが.

# 違いは違いとしてそのままで良いというのも言えないことはない.

                                まつもと ゆきひろ /:|)