- ベストアンサー
「?」が含まれるマッチについて
perlの文字マッチについて「?」が含まれる場合のマッチさせる方法について教えていただきたいです。 例) $hoge="papa?no=1,mama?no=2,cat=?no=3"; $hogehoge="cat=?no=3"; $hoge =~ m/$hogehoge/i; 上記の場合、文字内に「?」がある為にマッチしません。メタ文字として判断されているのでしょうか…。 この場合、マッチさせるにはどのような方法がありますでしょうか。 一度、「?」を違う文字に変換すれば出来るのではないかと思いますが、そのままの形でのマッチを求めています。 どうかよろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
\Q~\E
その他の回答 (2)
- entree
- ベストアンサー率55% (405/735)
回答No.3
$hoge =~ m/\Q$hogehoge\E/i; このようにすることで、$hogehogeの中身が通常の文字として解釈されます。
質問者
お礼
ありがとうございます。 教えていただいた方法でうまくいきました。
- ORUKA1951
- ベストアンサー率45% (5062/11036)
回答No.2
""は展開されますから 展開する必要がなければ、文字列として認識させるため $hogehoge='cat=?no=3'; とすべき!! $hoge='papa?no=1,mama?no=2,cat=?no=3'; も・・
質問者
お礼
ご指摘ありがとうございます。 変数ではないので、おっしゃる通りの方法がいいと思います。 ありがとうございました。
お礼
ありがとうございます。 教えていただいた方法でうまくいきました。