• ベストアンサー

「?」が含まれるマッチについて

perlの文字マッチについて「?」が含まれる場合のマッチさせる方法について教えていただきたいです。 例) $hoge="papa?no=1,mama?no=2,cat=?no=3"; $hogehoge="cat=?no=3"; $hoge =~ m/$hogehoge/i; 上記の場合、文字内に「?」がある為にマッチしません。メタ文字として判断されているのでしょうか…。 この場合、マッチさせるにはどのような方法がありますでしょうか。 一度、「?」を違う文字に変換すれば出来るのではないかと思いますが、そのままの形でのマッチを求めています。 どうかよろしくお願いいたします。

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

\Q~\E

hana43
質問者

お礼

ありがとうございます。 教えていただいた方法でうまくいきました。

その他の回答 (2)

  • entree
  • ベストアンサー率55% (405/735)
回答No.3

$hoge =~ m/\Q$hogehoge\E/i; このようにすることで、$hogehogeの中身が通常の文字として解釈されます。

hana43
質問者

お礼

ありがとうございます。 教えていただいた方法でうまくいきました。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

""は展開されますから 展開する必要がなければ、文字列として認識させるため $hogehoge='cat=?no=3'; とすべき!! $hoge='papa?no=1,mama?no=2,cat=?no=3'; も・・

hana43
質問者

お礼

ご指摘ありがとうございます。 変数ではないので、おっしゃる通りの方法がいいと思います。 ありがとうございました。

関連するQ&A