電子書籍の厳選無料作品が豊富!

perlの文字マッチについて「?」が含まれる場合のマッチさせる方法について教えていただきたいです。

例)
$hoge="papa?no=1,mama?no=2,cat=?no=3";
$hogehoge="cat=?no=3";

$hoge =~ m/$hogehoge/i;

上記の場合、文字内に「?」がある為にマッチしません。メタ文字として判断されているのでしょうか…。

この場合、マッチさせるにはどのような方法がありますでしょうか。
一度、「?」を違う文字に変換すれば出来るのではないかと思いますが、そのままの形でのマッチを求めています。

どうかよろしくお願いいたします。

A 回答 (3件)

\Q~\E

    • good
    • 0
この回答へのお礼

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

お礼日時:2013/07/02 10:01

$hoge =~ m/\Q$hogehoge\E/i;



このようにすることで、$hogehogeの中身が通常の文字として解釈されます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/07/02 10:01

""は展開されますから


展開する必要がなければ、文字列として認識させるため
$hogehoge='cat=?no=3';
とすべき!!
$hoge='papa?no=1,mama?no=2,cat=?no=3';
も・・
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/07/02 10:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!