[#5219] ruby for perl users — Noritsugu Nakamura <nnakamur@...>

35 messages 1997/11/09
[#5220] Re: ruby for perl users — tateishi@... (Tateishi Takaaki) 1997/11/09

立石です。

[#5224] Re: ruby for perl users — shugo@... (Shugo Maeda) 1997/11/09

前田です。

[#5243] read from subprocess — Kikutani Makoto <kikutani@...>

きくたにです。

17 messages 1997/11/10
[#5250] Re: read from subprocess — matz@... (Yukihiro Matsumoto) 1997/11/11

まつもと ゆきひろです

[#5300] Win32用の Rubyでの tkの使用 — Tomoaki Takebayashi <tota@...>

はじめまして、竹林といいます。

14 messages 1997/11/15
[#5302] Re: Win32用の Rubyでの tkの使用 — WATANABE Hirofumi <eban@...> 1997/11/15

わたなべです.

[#5303] Re: Win32 用の Rubyでの tkの使用 — Tomoaki Takebayashi <tota@...> 1997/11/15

[#5305] Re: Win32 用の Ruby での tk の使用 — aito@...5sun.yz.yamagata-u.ac.jp 1997/11/17

あ伊藤です.

[#5320] ruby 1.0-971118 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

20 messages 1997/11/18
[#5337] Re: ruby 1.0-971118 released — WATANABE Hirofumi <watanabe@...> 1997/11/19

わたなべです.

[#5340] Re: ruby 1.0-971118 released — matz@... (Yukihiro Matsumoto) 1997/11/19

まつもと ゆきひろです

[#5398] 配列への追加について — a-nisida@... (西田明良)

はじめまして、西田@初心者 と申します。m(..)m

16 messages 1997/11/22

[ruby-list:5314] 正規表現について

From: futami ryutaro <theworld.anet.ne.jp@...>
Date: 1997-11-18 02:21:26 UTC
List: ruby-list #5314
はじめまして、二見です。

最近、rubyを使い始めました。
とりあえずテキスト処理を行っているのですが
望み通りの動作をしなくて困っています。
やりたいことは下記のテキストデータの内容を
表計算用のデータに加工しようと思って、
プログラムを作成しました。

内容としては
・前後に空白2個を持った4〜6桁の数字にマッチしたら
 データ行と認識してnumとtypeを取り込む。
・先頭が英数字(空白ではない)だったらitemとして取り込む。
・それ以外は無視する。(行頭が空白ならコメント行として無視)

この状態で実行したのですが、実行結果を見ると
itemの取り込みがうまくいきません。
希望としてはitemは"1st item"と"2nd item"だけなのですが
データ行もitemとして取り込んでしまいます。

原因を調べたのですが行頭が空白のコメント行が関係するようです。
行頭が空白かつ文頭が数字3桁以上ではじまるコメント行があると
その後のitemの取り込みがうまくいかないようです。

そこで教えてください。
・この正規表現で問題ありませんか?
・正しく動かすにはどこを直せばいいのでしょうか?
よろしくおねがいいたします。

****テキストデータ "chk.txt"****
1st item
300type  2300  UP
300type  3100  NO
     300type comment <-問題あり
     text comment <-問題なし

266type  3800  UP
266type  4200  NO
     26type comment <-問題なし

2nd item
200type   9600  UP
200type  10000  NO
****テキストデータ ここまで****


****プログラム "chk.rb"****
#!/usr/local/bin/ruby
item = ''
while gets
  case $_
  when /  \d{4,6}  /
    num  = $&.strip
    type = $`.strip
    print item,"|",type,"|",num,"\n"
    next
  when /^\w/
    item = $_.strip
    print "get item name = ",item,"\n" <-デバッグのため
    next
  end
end
****プログラム ここまで****

****実行結果****
> cat chk.txt | chk.rb
get item name = 1st item
1st item|300type|2300
1st item|300type|3100
get item name = 266type  3800  UP
266type  3800  UP|266type|4200
get item name = 2nd item
2nd item|200type|9600
2nd item|200type|10000
****実行結果 ここまで****

In This Thread

Prev Next