• ベストアンサー

@がすでに含まれちゃってる文字列の操作

perlで文字列中に@を使いたいときは ¥などでエスケープすればよいと思いますが、 (パラメタで受け取った)すでに@が入っている文字列の @までの文字列を切り取るにはどうすればよいでしょう。 どうぞ教えてください。よろしくお願いいたします。 たとえば、 $str1="aaa@bbb"; $str2=substr($str1,0,3); とやってもエラーになってしまいます。

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

  • ベストアンサー
noname#25358
noname#25358
回答No.2

 @に気を使わなければいけないのは、ソースコード内の文字列だけです。  引数などから受け取った@は正しく処理されます。  サンプルがうまくいかないのは、ご自分でおっしゃっているとおりの理由によるものです。  なお、文字列を "" ではなく '' (CTRL+7)で囲むと、変数が展開されなくなるのでエラーが出なくなります。  

mari2002
質問者

お礼

そうだったのですね、ありがとうございました。 正常動作を確認できました。

その他の回答 (1)

  • westpoint
  • ベストアンサー率35% (173/482)
回答No.1

正規表現で、あらかじめ@を他の文字列に変換して処理し、切り取った後の文字列を@に戻せばどうですか?

mari2002
質問者

お礼

早速のおへんじありがとうございました。 正規表現もためしてみましたがうまくいきませんでした。

関連するQ&A