- ベストアンサー
書き込めない文字はどうすればいいのでしょうか
$xx =~ s/)/)/; $zz = ')'; ↑のように)を入れると、エラーになるのですが、この場合はどのようにすればいいのでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> ありがとうございます。\)をつけてやってみたのですが、うまくいきませんでした。 どこにつけました? > $Http_USER_AGENT[1] = "compatible; MSIE 7.0; Windows NT 5.1"; ここじゃだめですよ。 ')'が正規表現で特別な意味を持つためにエラーになっているのですから、 $ENV{'HTTP_USER_AGENT'} =~ /$_/) ↑この $_ の中にある')'に対して行わなければダメなのです。 /\Q$_\E/ としてみてください。 ')' に限らず、正規表現で特別な意味を持つ文字 (メタ文字)を適切にエスケープしてくれます。
その他の回答 (1)
- chie65536
- ベストアンサー率41% (2512/6032)
「)」は「\)」 「.」は「\.」 「\」は「\\」 「'」は「\'」 「"」は「\"」 「/」は「\/」 「[」は「\[」 「\」を付ければ殆ど大丈夫。
補足
ありがとうございます。\)をつけてやってみたのですが、うまくいきませんでした。以下のようにして使いたいのですが、宜しくお願いいたします。 $Http_USER_AGENT[0] = "compatible; MSIE 6.0; Windows NT 5.1";#5.1の後ろに)を追加したい。 $Http_USER_AGENT[1] = "compatible; MSIE 7.0; Windows NT 5.1";#5.1の後ろに)を追加したい。 local($match) = 0; foreach (@Http_USER_AGENT) { if ($ENV{'HTTP_USER_AGENT'} =~ /$_/) { $match=1; last; } } if ($match) { print "abc"; }
お礼
おかげ様で出来ました。有難うございます。