- ベストアンサー
Perlでの比較表現について
度々失礼します。 Perlでの比較表現について、例えば $a=aaa,bbb,ccc,ddd; $b=aaa,bbb; if($a =~ $b){ print "include!"; } としたときの結果は include! となり、比較に合致するのですが、 $a=aaa,\[bbb\],ccc,ddd; $b=aaa,\[bbb\]; if($a =~ $b){ print "include!"; } という条件で実行すると、比較に合致せず何も表示されません。 こういった場合、どのように対処すればよろしいでしょうか。 ご存じの方がおられましたらご教授下さい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#25358
回答No.1
"[" と "]" は、正規表現ではメタ文字ですので、その直前の "\" をちゃんと認識させてやる必要があります。 具体的には $b の "\" を "\\" に変えて、"aaa,\\[bbb\\]" とします。
その他の回答 (1)
- akarin6_6
- ベストアンサー率59% (13/22)
回答No.2
>aaa,\\[bbb\\] >と値を変更するにはどのようにすればよいのでしょうか。 s///で置換するのが手っ取り早いですね。
質問者
お礼
ありがとうございます。 試してみます。
お礼
ありがとうございます。 質問の連続で申し訳ありませんが、$a、$bともにファイルの内容を読み込んできた値である場合、 $bが予め aaa,\[bbb\] となっている場合、 aaa,\\[bbb\\] と値を変更するにはどのようにすればよいのでしょうか。 よろしくお願いします。