• ベストアンサー

正規表現で  " ← を削除するには?

" がある文があって、これを削除したいのですが、 $file="KEN_ALL.csv"; open (IN, $file) or die "$!"; while (<IN>) { $_ =~ s/\"//; print $_; print "<br>"; } close (IN); と書いたのですが、削除できませんでした。「"」はどうやって削除できるんでしょうか?やりたいことは、CSVファイルの各セルの中に「"」がたくさんあって、それを一気に削除したいのです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>$_ =~ s/\"//; これを $_ =~ s/\"//g; にすればどうなります?

ken_0401
質問者

補足

できました。 ありがとうございます。

その他の回答 (2)

  • kumoz
  • ベストアンサー率64% (120/185)
回答No.3

一見して、ファイルに書き出すコードがないように思います。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;

ken_0401
質問者

お礼

できました。 ありがとうございました。

  • qtea
  • ベストアンサー率77% (38/49)
回答No.2

CSVだと、下記を参考にされた方が、良いかもしれません。 http://www.din.or.jp/~ohzaki/perl.htm#CSV2Values

関連するQ&A