From: flare@... (Takashi Ikeda) Date: 1998-10-30T00:05:23+09:00 Subject: [ruby-list:10467] regexp for EUC ふれあです。 EUCの混じったコードを読み出したいのですが、実験してみたとこ ろ、Rubyでは読み込めないものを書いてしまったようです。 rbc0> line = 'あいうえお123' "あいうえお123" rbc0> pat = '123' "123" rbc0> line =~ "(^|(^([\000-\177]|([\200-\377][\200-\377]))+))#{pat}" false 仕方ないので、もっと簡素化して rbc0> line =~ "(^([\200-\377][\200-\377])+)#{pat}" false それでも無謀に rbc0> line =~ "(^([\200-\377]{2,2})+)#{pat}" false こういうものなのでしょうか。それとも、Ruby独特の正規表現の仕 方があるのでしょうか。 # 最初の正規表現でしたらば、ASCII文字列でしたら読めました。 ちなみに、同じことをするはずのPerlスクリプト(reg.pl)なのですが、 ---------------------------------------------------------------------- #!/usr/bin/perl $line = 'あいうえお123'; $pat = '123'; $line =~ "(^|(^([\000-\177]|([\200-\377][\200-\377]))+))${pat}"; print "$&\n"; print "$1\n"; ---------------------------------------------------------------------- > ./reg.pl あいうえお123 あいうえお > どうなんでしょうね?何か僕が検討違いをしていれば、(動くと言 う意味で(笑))ありがたいのですが… # 作ったスクリプトがこれで駄目になっちゃったんで、卑劣な方法 # で無理矢理動かしてます。やり方は恥ずかしくて言えません(^^;) -- ( takashi-ikeda . flare@kcn.or.jp )