• ベストアンサー

書き込めない文字はどうすればいいのでしょうか

$xx =~ s/)/)/; $zz = ')'; ↑のように)を入れると、エラーになるのですが、この場合はどのようにすればいいのでしょうか。

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

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

> ありがとうございます。\)をつけてやってみたのですが、うまくいきませんでした。 どこにつけました? > $Http_USER_AGENT[1] = "compatible; MSIE 7.0; Windows NT 5.1"; ここじゃだめですよ。 ')'が正規表現で特別な意味を持つためにエラーになっているのですから、 $ENV{'HTTP_USER_AGENT'} =~ /$_/) ↑この $_ の中にある')'に対して行わなければダメなのです。 /\Q$_\E/ としてみてください。 ')' に限らず、正規表現で特別な意味を持つ文字 (メタ文字)を適切にエスケープしてくれます。

yasainet
質問者

お礼

おかげ様で出来ました。有難うございます。

その他の回答 (1)

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

「)」は「\)」 「.」は「\.」 「\」は「\\」 「'」は「\'」 「"」は「\"」 「/」は「\/」 「[」は「\[」 「\」を付ければ殆ど大丈夫。

yasainet
質問者

補足

ありがとうございます。\)をつけてやってみたのですが、うまくいきませんでした。以下のようにして使いたいのですが、宜しくお願いいたします。 $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"; }

関連するQ&A

専門家に質問してみよう