ふれあです。

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 )