• ベストアンサー

ダブルクォーテーションの削除(置換)

$a = qq/"aaaaaa","bbbbb"/; print $a; → "aaaaa","bbbbb" としたときの、変数 $a の中にある ダブルクォーテーションを削除したいのですが、 $a =~ s/"//; では何も変化が無くて、 $a =~ tr/"/ /; では半角スペースに置換できるのですが、 $a =~ tr/"//; では何も変化がありません。 上手く出来る方法はどの様な方法でしょうか? 教えていただければありがたいです。 よろしくお願いいたします。

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

  • ベストアンサー
  • mcq
  • ベストアンサー率48% (45/93)
回答No.2

$a =~ s/"//; とした時には →aaaaa","bbbbb" という風に一つ目の「"」だけは無くなっていませんか? $a =~ s/"//g; とすれば全ての「"」を削除できます。 また、tr///を使う時には、 $a =~ tr/"//d; とすれば変換先リストに無い文字を削除できます・

参考URL:
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/pe_k08.htm
akira_
質問者

お礼

ありがとうございます! オプション付け忘れていました・・

その他の回答 (1)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

$a =~ s/"//g; で全て削除されると思います。 > $a =~ s/"//; でも先頭のが削れてるはずですが。 > $a =~ tr/"//; の挙動は仕様です。詳しくはドキュメントperlopをご覧ください。

akira_
質問者

お礼

ありがとうございます、まさにそのとおりで、 先頭のは削除されておりました。 オプション付け忘れですね・・申し訳ございません。

関連するQ&A

専門家に質問してみよう