[#38020] irb で %W(#{...}) — yoshihisa masuda <sacong@...>
マスダといいます。
[#38036] undef variable — hirocy <hirocy@...>
hirocyです.
[#38039] proc method — "K.Sasada" <ko1@...>
こんにちは。ささだです。
[#38056] ファイル書換え? — 中村文建 <tx6f-nkmr@...>
初めまして、MLに参加させて頂く中村と申します。
[#38057] [ANN] Ruby-GNOME2-0.6.0 — Masao Mutoh <mutoh@...>
むとうです。
[#38059] [ANN] rbbr-0.3.0 — Masao Mutoh <mutoh@...>
むとうです。
[#38073] module extendable? — Takeshi Horinouchi <horinout@...>
堀之内と申します。
[#38080] ポートが閉じているときの例外など — Mitsuru Ogino <ogino@...>
荻野と申します。いつも質問や要望ばかりですみません。
なかだです。
いわおかです。
荻野です。
なかだです。
いわおかです。
In message <20030812150516.GV37221@barber.fe.rn.tuat.ac.jp>
中川と申します。
In message <20030814.140757.707824131.tetsuo@sapphire.siz.nes.nec.co.jp>
なかだです。
In message <200308160517.h7G5HcPL012839@sharui.nakada.kanuma.tochigi.jp>
なかだです。
In message <200308180959.h7I9xnb7001977@sharui.nakada.kanuma.tochigi.jp>
なかだです。
まつもと ゆきひろです
[#38090] ruby-1.8 で eruby が SEGV — Kazuhiko <kazuhiko@...>
かずひこです。
[#38104] XMLRPC::ModRubyServer — OHARA Shigeki <os@...>
大原です。
[#38122] ruby-tcpwrap and mkmf.rb — Takahiro Kambe <taca@...>
こんにちは。
At Sat, 16 Aug 2003 12:51:55 +0900,
In message <200308160518.h7G5IXPL012842@sharui.nakada.kanuma.tochigi.jp>
なかだです。
In message <200308160714.h7G7ErPL014647@sharui.nakada.kanuma.tochigi.jp>
前田です。
In message <87d6f3znlc.wl@kirk.priv.netlab.jp>
前田です。
わたなべです。
[#38164] Ruby1.8.0でRuby-PostgreSQLがビルドできない — kensaku Maki <sakaki@...>
はじめまして、まきと申します。
[#38183] String << の動作につきまして — kuto@...
うと と申します。
たけ(tk)です。
ふなばです。
たけ(tk)です。
ふなばです。
たけ(tk)です。
ふなばです。
ども、西啓一朗@Ktouth Brand. です。
ふなばです。
ども、西啓一朗@Ktouth Brand. です。
[#38195] 理解の進め方(Re: String << の動作につきまして) — Tadashi Oh-Ya <toy@...>
おおやです。
たけ(tk)です。
In "[ruby-list:38206] 理解の進め方:シュールな世界"
たけ(tk)です
[#38198] Tmailで送るメールに日付がつけられなくなりました — 川田誠司 <kawada.seiji@...>
はじめまして
[#38256] かみ砕いた説明をすべき範囲 — 西 啓一朗 <receiver@...>
ども。西啓一朗@Ktouth Brand. です。
なかだです。
たけ(tk)です
なかだです。
たけ(tk)です
いわおかです。
たけ(tk)です
まつもと ゆきひろです
たけ(tk)です。
たけ(tk)です。
[ruby-list:38275] Re: パターンマッチの置換について
From: hogehoge@swan.syscom.ne.jp
Subject: [ruby-list:38274] パターンマッチの置換について
Date: Tue, 26 Aug 2003 16:07:50 +0900
るびきちです。
> 今、パターンマッチの置換で、はまっています・・・。
正規表現は難しいですね、たしかに。
おれもよくハマります。
自信がないときはirb(irbsh)で正規表現をチェックしながらスクリプトを書いてます。
> 以下の通り、TEXT1.txtの全行から、{・・・}を
> 取り除いて、TEXT2.txtへ書きこみたいのですが、
> 色々他の方法を用いても、どうしても、各行の
> 最初の一個しか取り除いてくれません。
んー、こちらではうまくいきますね(^^;
うまくいかないテキスト例とバージョンをください。
確認したバージョンはこれらです。
ruby 1.6.6 (2001-12-26) [i586-linux]
ruby 1.8.0 (2003-03-03) [i586-linux]
TEXT1 = File.open("/tmp/TEXT1.txt")
TEXT2 = File.open("/tmp/TEXT2.txt","w")
while !TEXT1.eof
line = TEXT1.gets
line = line.chomp
line = line.gsub(/\{.*?\}/,'')
TEXT2.print(line,"\n")
end
TEXT2.close
TEXT1.close
実行結果は、
cd /tmp/
cat /tmp/TEXT1.txt; echo --------; ruby /tmp/a.rb; cat /tmp/TEXT2.txt
あいあい{あい}う{え}おえ{お}え
あいあい{あい}うえおえ{お}え
あいあい{あい}うえおえおえ
--------
あいあいうおええ
あいあいうえおええ
あいあいうえおえおえ
----
もっとRubyらしく書くとこんな感じでしょうか?
ブロックをつかえばclose不要です。
File.open("/tmp/TEXT1.txt") do |text1|
File.open("/tmp/TEXT2.txt","w") do |text2|
while !text1.eof
line = text1.gets
line = line.chomp
line = line.gsub(/\{.*?\}/,'')
text2.print(line,"\n")
end
end
end
というか、chompと行末の"\n"は不要ですね。
File.open("/tmp/TEXT1.txt") do |text1|
File.open("/tmp/TEXT2.txt","w") do |text2|
while !text1.eof
line = text1.gets
line = line.gsub(/\{.*?\}/,'')
text2.print(line)
end
end
end
IO.foreach(File.foreach)を使うと行ごとに取り出せます。
File.open("/tmp/TEXT2.txt","w") do |text2|
File.foreach("/tmp/TEXT1.txt") do |line|
line = line.gsub(/\{.*?\}/,'')
text2.print(line)
end
end
さらに、TEXT1の内容を丸ごと読み込んで置換して書き込むこともできます。(要1.8)
俺ならこう書きます。
File.open("/tmp/TEXT2.txt","w") do |text2|
text2.print File.read("/tmp/TEXT1.txt").gsub(/\{.*?\}/,'')
end
--
面倒ならば、次のファイルを自分用ライブラリflib.rbなどと保存しておいて、
# flib.rb
def readf(fn)
File.read(fn)
end
class Object
def writef(fn)
open(fn,"w"){|f| f.write self.to_s}
end
end
---
# スクリプト本体
require 'flib'
readf("/tmp/TEXT1.txt").gsub(/\{.*?\}/,'').writef("/tmp/TEXT2.txt")
のように実質一行で済ませることもできます。
それでは。
るびきち☆
http://www.rubyist.net/~rubikitch/ ←Ruby大衆化計画@移転
http://www.rubyist.net/~rubikitch/computer/irbshbook/ ←irbsh本発売