- ベストアンサー
置換文字列の中に"?"があると置換できません。
恐れ入ります。 ?”クエスチョンマーク”の置換をしたいのですが できなくて困っています。 例 #!/usr/bin/perl $a='a?a'; $b='bbba?abbbbaaaabbbbabbbbb'; $b=~ s/$a//g; print "$b\n"; 文字列$bから”a?a”を削除しようとしているのですが、 変化しません。 ためしに\?としてみましたが・・・だめでした。 ?を!に変えたい!とかいう人は絶対いると思い 「クエスチョンマーク 置換」 等で検索したのですが、 「0個(=1個もない)、または1個ある場合」を表している」 等の情報ばかりでした・・・ どうか教えてください。。。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> $a='a?a'; の部分を $a='a[\?]a'; とするか、 $a=quotemeta('a?a'); とすれば期待通りの動作をすると思います。
その他の回答 (1)
- himajin100000
- ベストアンサー率54% (1660/3060)
回答No.1
#!C:\Environment\Perl\v5.8.8\bin\perl.exe #正規表現のエスケープ #http://crocro.com/pc/write/hide/chimarl09_01.html#06 $a='a\?a'; $b='bbba?abbbbaaaabbbbabbbbb'; $b=~ s/$a//g; print "$b\n";
質問者
お礼
説明が足りずに 申し訳ありませんでした。
質問者
補足
実は$aは ユーザーの入力から得たいので・・・
お礼
ああああああ!! すごいです!!! こんな便利なコマンドがあったのですね! ばっちりです。 感謝します!!