- ベストアンサー
正規表現で " ← を削除するには?
" がある文があって、これを削除したいのですが、 $file="KEN_ALL.csv"; open (IN, $file) or die "$!"; while (<IN>) { $_ =~ s/\"//; print $_; print "<br>"; } close (IN); と書いたのですが、削除できませんでした。「"」はどうやって削除できるんでしょうか?やりたいことは、CSVファイルの各セルの中に「"」がたくさんあって、それを一気に削除したいのです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>$_ =~ s/\"//; これを $_ =~ s/\"//g; にすればどうなります?
その他の回答 (2)
- kumoz
- ベストアンサー率64% (120/185)
一見して、ファイルに書き出すコードがないように思います。while (<IN>) のように書いた場合、while ブロックの中の $_ はグローバル変数になりま す。独立した変数ですので、元の値は変更されません。この点は、foreach や map とは異なります。次の例は、別のファイルに書き出します。 $file = "KEN_ALL.csv"; open(IN, $file) or die "$!"; open(OUT, ">update.csv") or die "$!"; while (<IN>) { $_ =~ s/"//g; print OUT $_, "<br>"; } close IN; close OUT;
お礼
できました。 ありがとうございました。
- qtea
- ベストアンサー率77% (38/49)
CSVだと、下記を参考にされた方が、良いかもしれません。 http://www.din.or.jp/~ohzaki/perl.htm#CSV2Values
補足
できました。 ありがとうございます。