From: Shin-ichiro HARA Date: 1997-12-15T21:01:13+09:00 Subject: [ruby-dev:1097] Re: Regexp#operators (Re: ruby 1.1b1 released) 原です。 From: matz@netlab.co.jp (Yukihiro Matsumoto) Subject: [ruby-dev:1064] Re: Regexp#operators (Re: ruby 1.1b1 released) Date: Fri, 12 Dec 97 12:19:14 +0900 > まつもと ゆきひろです > In message "[ruby-dev:1050] Re: Regexp#operators (Re: ruby 1.1b1 released)" > on 97/12/11, Shin-ichiro HARA writes: > > |だからこの Regexp に演算子を定義するのは、完全にはうまく行かないんで > |しょう。でも、やっぱり正規表現の演算ができるととても便利ですよね。 > > ということは,どのような演算を用意すれば使いやすく,理論的に > 「だきょうできる」んでしょうか? 毎回言う事が違って恐縮です。やっぱり最初の通り、 /foo/ + /bar/ = /(?:foo)(?:bar)/ /foo/ | /bar/ = /foo|bar/ とし、 /foo/ & /bar/ = /(?=foo)bar/ ~ /foo/ = /(?:(?!foo).)*/ も付け加えると。一応これでどうでしょう? ちなみにこの場合、string =~ /foo/ & /bar/ は、 string =~ /foo/ && string =~ /bar/ と結構異なります。 しかし、string =~ ~/foo/ は string !=~ /foo/ とほぼ同じです。