• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:use encodingによって正規表現の結果が変わる?)

use encodingによって正規表現の結果が変わる?

このQ&Aのポイント
  • webシステムで画面入力値のチェックをperlで行っており、perlのバージョンアップ対応を行った結果、正規表現の$が効かなくなる現象が発生しています。
  • バージョンはperl v5.8.0、osはRed Hat Linux release 9です。
  • use encodingが指定されていると、正規表現の$が効かなくなります。対処方法がわからないため、他の質問を検索しましたが解決策は見つかりませんでした。perlのバグの可能性があるので、対処方法を教えていただきたいです。

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

  • ベストアンサー
回答No.1

対処方法の回答ではありませんが、 Perl v5.8.8 だと、どちらの結果も match になります。 やはり Perl v5.8.0 のバグかもしれませんね。

yosiyabu
質問者

お礼

返事が遅れてすみません。 やはり、5.8.0のバグなのでしょうか? perl5.6.0でも再現しませんでした。 ちなみに、追加検証した結果、「固定値と$の組み合わせ」が駄目だということがわかりました。 ですので、上記でeを[]で囲めばマッチしました。(笑) #!/usr/bin/perl use encoding "euc-jp"; if ('apple' =~ /[e]$/) { print ("match\n"); } else { print ("unmatch\n"); } では、また、わからないことがありましたらよろしくお願いします。

関連するQ&A