[過去ログ]
Regular Expression(正規表現) Part15 (1002レス)
Regular Expression(正規表現) Part15 http://mevius.5ch.net/test/read.cgi/tech/1568640311/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
26: デフォルトの名無しさん [sage] 2019/10/07(月) 03:37:15.45 ID:21LgfgEW Ruby で、下のコードを、script.rb に書いて、 入力ファイル名を、input.csv とすると、 端末で、ruby script.rb input.csv と入力する。 つまり、ruby スクリプトファイル名 入力ファイル名 require 'csv' # 引数はファイル名 CSV.filter( File.open( ARGV[ 0 ] ) ) do |row| # 1行ずつ処理する row[ 3 ] = row[ 3 ].tr( ",", "、" ) # 列4 end http://mevius.5ch.net/test/read.cgi/tech/1568640311/26
27: 26 [sage] 2019/10/07(月) 04:17:44.92 ID:21LgfgEW >>26 修正 tr ではなく、tr! で、直接レシーバー(文字列)を変更できる >row[ 3 ] = row[ 3 ].tr( ",", "、" ) # 列4 row[ 3 ].tr!( ",", "、" ) # 列4 http://mevius.5ch.net/test/read.cgi/tech/1568640311/27
29: あ [sage] 2019/10/07(月) 21:08:31.31 ID:cbxlkLVD >>26 カンマでカラム分割してるからrow[3]にはカンマが含まれないよ ARGF.each do |line| line.match(/((?:.+?,){3})(.+)((?:,.+){1})/) do |match| puts match[1] + match[2].gsub(",", "、") + match[3] end end こういうのって力技で変換するよりも CSV生成側でクウォートし直したほうがいいよね http://mevius.5ch.net/test/read.cgi/tech/1568640311/29
32: 26 [sage] 2019/10/07(月) 23:29:10.22 ID:21LgfgEW >>29 >>26 は、CSV モジュールを使っているから、 列をクォートする事で、列内に、カンマが存在できる! 入力ファイル a,b,c,"あ,い,う",d require 'csv' # 引数は入力ファイル名 CSV.filter( File.open( ARGV[ 0 ] ) ) do |row| # 1行ずつ処理する p row[ 3 ] #=> "あ,い,う" row[ 3 ].tr!( ",", "、" ) # 列4 end 出力 a,b,c,あ、い、う,d http://mevius.5ch.net/test/read.cgi/tech/1568640311/32
34: 26 [sage] 2019/10/08(火) 00:22:31.74 ID:cRqslSem クォートしてなかったら、そもそも、CSV にならない! 列内に、カンマが含められないから、列数も変動する http://mevius.5ch.net/test/read.cgi/tech/1568640311/34
36: 26 [sage] 2019/10/08(火) 02:16:13.41 ID:cRqslSem バグのほとんどが設計段階で生じる、典型的な例かw バグを設計段階で修正せず、実装段階で修正しようとするから、 ますますダメになるという例w SE・上流工程が馬鹿だと、こういうのが多いw Ruby などで実装した事がないからだろうw ダメな事をやる香具師が、あまりにも多いw http://mevius.5ch.net/test/read.cgi/tech/1568640311/36
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.031s