回答編集履歴

3

補足

2017/02/06 11:24

投稿

退会済みユーザー
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  #encoding : utf-8
4
4
 
5
- mail = open("メールテスト.txt", &:read).encode("UTF-8").scan(%r|商品名(.+)\nサイズ(.+)\nカラー(.+)\n※オプション:(.+)\n価格(.+)\n|).each_slice(5).to_a.flatten(1)
5
+ mail = open("メールテスト.txt", &:read).encode("UTF-8").scan(%r|商品名(.+)\nサイズ(.+)\nカラー(.+)\n※オプション:(.+)\n価格(.+)\n|)
6
6
 
7
7
  mail = mail.transpose
8
8
 

2

誤字修正

2017/02/06 11:23

投稿

退会済みユーザー
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  #encoding : utf-8
4
4
 
5
- mail = open("メールテスト.txt", &:read).encode("UTF-8").scan(%r|商品名(.+)\nサイズ(.+?)\nカラー(.+)\n※オプション:(.+)\n価格(.+)\n|).each_slice(5).to_a.flatten(1)
5
+ mail = open("メールテスト.txt", &:read).encode("UTF-8").scan(%r|商品名(.+)\nサイズ(.+)\nカラー(.+)\n※オプション:(.+)\n価格(.+)\n|).each_slice(5).to_a.flatten(1)
6
6
 
7
7
  mail = mail.transpose
8
8
 

1

補足

2017/02/06 10:56

投稿

退会済みユーザー
test CHANGED
@@ -56,8 +56,12 @@
56
56
 
57
57
  今更ですが考えてみました。
58
58
 
59
+ 正規表現以外の方法でという質問でしたが正規表現でもここからここまで
60
+
61
+ みたいなことができるのではと考えた次第です。
62
+
59
63
  openとreadでテキストファイル全体を読み込んで正規表現で該当する部分を抜き出します。
60
64
 
61
65
  transposeでそれぞれの項目ごとにまとめて、形を整えます。
62
66
 
63
- 形を整えたら再びtransposeで商品ごとに変更して出力します。
67
+ 形を整えたら再びtransposeで商品ごとにして出力します。