No.3ベストアンサー
- 回答日時:
Shift_JIS コードを使っている場合、パターンマッチ以前の問題として、日本語文字列に uc を適用するとその時点で文字化けの可能性があります。
$name = "テニスコート";
$name = uc $name;
print "$name\n"; # ウカスコーエ
元の文字列を大文字化せずに正規表現に /i フラグを付ける対応策があるのですが、この場合も正規表現に日本語文字列が含まれていると問題があります。日本語文字は2種類の文字にマッチしてしまうものが多数あります。"テニスコート" の例では "ー" 以外の文字が2種類の文字にマッチするので、32 (2 の 5 乗) 種類の文字列とマッチすることになります。
対応策としては、"テニスコート" は index で、"TENNIS" は正規表現の /i フラグで処理するのがいいと思います。
if (index($name, "テニスコート") >= 0 or $name =~ /TENNIS/i) {
push(@error, 'テニス関係は入力できません');
}
具体的に説明してくださり、ご親切にありがとうございますm(_ _)m
/iで実験してみたのですが、kumozさんご指摘の通り、
関係ない日本語にもマッチしてしまい、どうするべきか考えていた次第です。
とても参考になりました。この方法で対応させていただきます!!!
No.2
- 回答日時:
それだけなら「大文字・小文字の区別を無視してマッチ」させればいいだけ. わざわざ大文字に直す必要はない.
そして本題については #1 にも書いたけどほぼ間違いなく文字コードがらみなので, 使ってる文字コードだったり use などによる文字コードの指定などを見直すこと.
二度もどうもありがとうございます。
/iでマッチさせる方法を知っていたにもかかわらず
思いつきもしなかった自分の力量のなさを痛感しました。
文字コード見直ししたいところですが、
かなり複雑に見直しが必要なのでどうにかならないか考えていました。
ほんとありがとうございました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Ruby パイソンプログラミング 2 2022/12/03 18:44
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- MySQL addcslashesの使い方について教えてください。 DBに繋げてそこから、部分一致させたいのです 1 2023/04/14 22:59
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perl初心者です。
-
正規表現が解読できません。
-
行末の正規表現について。
-
正規表現について教えてください
-
文字列検索時違う文字でマッチ...
-
配列内の要素をパターンマッチする
-
正規表現
-
正規表現で2種類ある括弧を区別...
-
正規表現で「高」という文字を...
-
CSVファイルの中で、「 , 」カ...
-
何故、日本は未だに数字を3桁...
-
住宅にカナを入力する際に丁目...
-
英数字のみ全角から半角に変換
-
プログラミングでは、半角括弧...
-
何故、日本は未だに数字を3桁...
-
正しいメールアドレスの形式で...
-
スマホの予測変換について
-
C#でcsvファイルの列を入れ替え...
-
全角英数字の必要性が理解できない
-
カンマ区切りの数字をCSVフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正規表現 URL抽出「 [\\/\\b]{0...
-
なんで真面目な出会いを求める...
-
正規表現
-
コマンドプロンプトでのsedの使...
-
正規表現でパスワードのチェック
-
perlで記号除去を行いたいので...
-
金額にマッチする正規表現について
-
【正規表現】コメントアウトさ...
-
シェルスクリプト [[ $number =...
-
c言語で、チャットシステムに、...
-
リナックスの grepコマンド ...
-
マッチングアプリであった場合2...
-
sedの正規表現でグループ化する...
-
正規表現について VB6
-
perlの正規表現で量指定子を繰...
-
正規表現の展開
-
正規表現-数字
-
条件にマッチした行数のカウント
-
正規表現。行頭が○○以外にマッ...
-
CSVファイルの中で、「 , 」カ...
おすすめ情報