From: qzr00050@... Date: 2007-03-31T16:42:39+09:00 Subject: [ruby-list:43345] 置換リストを読み込んでのgsub 柳井と申します。DTP業務のテキスト処理でテキストエディタJedit XとGAWKを使 っていて、これからrubyを覚えようという者です。Jedit Xの複数一括置換のた めにいくつも作成した置換リストを、できればそのままrubyでも使いたいのです が、うまくいきません。環境はMacOS 10.4.9でrubyは付属の1.8.2です。 置換リストの例は下のtable.tsvです。UTF-8のタブ区切りテキストで、正規表現、 後方参照(\1 \2...)ありで、置換後文字列に改行文字とタブ文字も含みます。 (エスケープ文字はバックスラッシュ) 一応、後方参照については以下のtest.rbでクリアしたつもりですが、改行文字、 タブ文字への置換ができていません。どこか間違ってないでしょうか。あるいは、 できないのでしょうか。 よろしくお願いいたします。 test.rb ------------------------------------------- filename = ARGV[0] file = open(filename) left = Array.new right = Array.new i = 0 while table = file.gets do table.chomp! list = table.split(/\t/) if list.size > 1 then left[i] = list[0] right[i] = list[1] i = i+1 end end file.close filename = ARGV[1] file = open(filename) text = file.read n = 0 while nruby test.rb table.tsv sample.txt a\n[b]\tc 1abcfoo2abcbar 次のような結果を期待しているのですが…。 a [b] c 1abcfoo2abcbar ちなみにスクリプトの最後の方でコメントアウトした2行を実行するとこうです。 a [b] c 1abcfoo2abcbar