- ベストアンサー
正規表現で全角スペースと誤認
OS:solaris8 perlのver:5.8.6 perlで、”食器洗い乾燥機|0”という文字列に対し、 空白文字(半角スペース、タブ、改行、全角スペース) が含まれているかを検査しているのですが、 空白文字有りとなってしまいます。 恐らく文字コードの問題だと思うのですが、 詳しくないため、解決方法が分からないでいます。 どのようにしたら解決できるでしょうか? require "jcode.pl"; としているので、jcodeのモジュールで 解決できないでしょうか? 文字コードはEUCです。 以下はソースです。 # 空白文字(半角スペース、タブ、改行、全角スペース)が #入力されていないかチェック $data = "食器洗い乾燥機|0"; if ($data =~ /\s|(?:\xA1\xA1)/) { #含まれている場合 } よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その問題の原因と解決方法が、下記のページで詳しく紹介されています。
その他の回答 (1)
- kabaokaba
- ベストアンサー率51% (724/1416)
回答No.2
5.8ならjcode.plは不要で use encoding qw/euc-jp/; としておけば,以前のjperlと 同等の動きをするはずです. jcode.plの提供する関数を使ってる場合は 読み込んでも問題ないとは思います #5.8のunicode関係の書籍って #なかなかないんですよね
お礼
修正・テストする時間がなかったため、 「|」を「|」に置換(全角⇒半角)することで 対応しました。 参考URLのやり方は 次回試してみます。 ご返信ありがとうございました。