[#43271] rails がこけます — "Hideo Konami" <konami@...>

小波です。

15 messages 2007/03/18
[#43273] Re: rails がこけます — 山崎雄介 <y-yamasaki@...> 2007/03/19

山崎です。

[#43274] rubyスクリプト内で、unixコマンドを実行 — 上間 健 <mugenkai15@...> 2007/03/19

こんにちは、上間です。

[#43286] モジュールのinclude先の名前 — Sato Hiroshi <hirocy.f01@...>

hirocyです.

23 messages 2007/03/22
[#43290] system(wget url) について — Kyoko Sato <k.sato@...> 2007/03/22

お世話になっております。佐藤です。

[#43291] Re: system(wget url) について — Yukiharu Yabuki <yabuki@...> 2007/03/22

こんにちは

[#43293] Re: system(wget url) について — Kyoko Sato <k.sato@...> 2007/03/22

矢吹さん有難うございます。佐藤です。

[#43294] Re: system(wget url) について — Yukihiro Matsumoto <matz@...> 2007/03/22

まつもと ゆきひろです

[#43295] Re: system(wget url) について — Kyoko Sato <k.sato@...> 2007/03/22

まつもとゆきひろさん有難うございます。佐藤です。

[ruby-list:43345] 置換リストを読み込んでのgsub

From: qzr00050@...
Date: 2007-03-31 07:42:39 UTC
List: ruby-list #43345
柳井と申します。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 n<i do
	text.gsub!(/#{left[n]}/mu, "#{right[n]}")
	n=n+1
end

#	text.gsub!(/\\n/, "\n")
#	text.gsub!(/\\t/, "\t")
print text
file.close
--------------------------------------------

table.tsv
--------------------------------------------
\(	\n[
\)	]\t
\t	\n
(\d)(foo|bar)	\1abc\2
--------------------------------------------

sample.txt
--------------------------------------------
a(b)c
1foo2bar
--------------------------------------------

実行結果はこうです。

>ruby test.rb table.tsv sample.txt 
a\n[b]\tc
1abcfoo2abcbar

次のような結果を期待しているのですが…。
a
[b]
c
1abcfoo2abcbar

ちなみにスクリプトの最後の方でコメントアウトした2行を実行するとこうです。
a
[b]	c
1abcfoo2abcbar




In This Thread

Prev Next