![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.1ベストアンサー
- 回答日時:
まず、その方法では、$keyは「正規表現」として解釈されます。
例えば、 「.」(ピリオド)を検索しようとすると、全ての文字がマッチします。
また、明示的に設定したり、昔のJperlのような改造版でも無い限り、日本語は「複数のバイト列」です。
そのため、Shift_JISで顕著な、俗に「ダメ文字」と呼ばれる問題があります。
特に、正規表現では、通常「ダメ文字」と言われる\を含む文字の他にも、メタ文字として使われる文字(|等)も対象となるので、かなりの数の文字が誤判定されます。
単に文字列が含まれるかどうかだけなら、index関数を使う方が確実です。
または、\Q$key\Eとして$key中のメタ文字から特殊な意味を無くしてしまうか。
ただ、いずれの場合でも、漢字の途中から(あるいは途中まで)マッチするケースがあります。
Encodeを使ってUnicode文字列に変換して、漢字を1文字として扱うようにした方がよいかもしれせん。
この回答への補足
お世話になります。
その後、調べたり考えたりした結果、
問題は漢字だったので、前から使っていたindexによる検索を併用して解決しました。
m//iは英字の大文字小文字混在を解決すべく変更したモノで、
漢字とは排他の関係にありますので。
unicodeは少し読んでみましたが、一からしっかり読まなくてはならないと思います。
勉強してみます。
どうも有り難うございました。
早速有り難うございました。
言われていることが、何となくですが、分かります。
前にも似たような質問をしたことがあり、
その時にも勉強したのですが、今ひとつ自分のものにできていません。
基礎が出来ていないからでしょう。
今回も同じようにならないため、もう少し踏み込んで勉強したいと思います。
(1)index関数
(2)\Q$key\Eとして$key中のメタ文字から特殊な意味を無くしてしまう
(3)Encodeを使ってUnicode文字列に変換する
(1)、(2)は何とか検索などで調べられ、やってみられるかなと思いますが、
(3)は何処か参考になるサイトなり、サンプルなりはありますでしょうか。
私のやりたいことからして、(3)が一番適切かなと思うのですが。
宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) Outlookメール 連絡先の検索について 〈 ご説明 〉 Windows PC の Outlook 1 2022/09/23 14:43
- Perl Perlで特定文字列から特定文字列までを抜き出したい 4 2022/04/02 14:24
- プリンタ・スキャナー ブラザ-製プリンタ-DCP-J582N不具合改善アドバイス依頼 2 2022/10/17 15:40
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/09 10:07
- 政治 私の発明した「二階建て漢字」は使えるでしょうか? 3 2023/02/08 16:40
- ライフスタイル・ヘルスケア URLを開くアプリが見つかりません 2 2022/09/16 12:09
- iOS LENOVOのCD/DVDドライブが認識しない 2 2022/06/01 09:26
- Excel(エクセル) エクセルのAltを押すと「自動保存」「上書き保存」・・・に白抜きの「1」「2」・・・が出る。 2 2023/08/11 11:39
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- 日本語 漢字の意味について 3 2022/06/15 23:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルで提出とは?
-
ファイルをディレクトリ分配の...
-
openした後、closeしないでプロ...
-
perlのプログラミング 部分入れ...
-
Perlのエラーについてご教授く...
-
画像が表示でnull; this.src
-
perlプログラミング 空白行削除
-
Perlで特定文字列から特定文字...
-
ラズベリーパイ初心者です。 ラ...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlについて
-
perlのrequireの動き方について...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
openした後、closeしないでプロ...
-
テキストファイルで提出とは?
-
INDIRECT 横に再度抽出したい
-
Perlで特定文字列から特定文字...
-
perlをバージョンアップしたら...
-
Wallpaper Engineでおすすめの...
-
arduino の割り込み処理について
-
アルファベットに付いて質問し...
-
Strawberry Perl for Windows ...
-
Perlで時間の計算
-
このファイルを開く方法で困っ...
-
TeraPadエディターの操作方法に...
-
cgiでサーバーにファイルを追加...
-
フローチャート 九九
-
LinuxにおいてのPerlのプログラ...
-
perl 初等プログラミングについて
-
Perlのエラーについてご教授く...
-
こんにちは ブラケッツでプログ...
-
bashスクリプト
-
perlプログラミング 空白行削除
おすすめ情報