A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
> perlのバージョンは 5.8.8
> プログラムの文字コードは EUC-JP
> ファイルの文字コードも EUC-JP
使われている文字コードが EUC-JP の場合は、次のように変更してみてください。
my $data1 = decode 'euc-jp', 'アイウエオカキクケコ';
my $data2 = decode 'euc-jp', 'カキクケコサシスセソ';
decode の第1引数は、第2引数で指定した文字列の文字コードです。decode すると、文字列はいわゆる「Perl 内部文字列」になります。なお、「Perl 内部文字列」を外側 (コンソール、ファイルなど) に出力する場合は、(やり方はいろいろあるのですが) 一例としては次のようにします。
print encode('euc-jp', $data1), "\n";
No.3
- 回答日時:
Perl で日本語文字列を扱うのは非常に厄介で、プログラミングしている環境を理解していることが重要です。
・Perl のバージョン
・プログラムの文字コード
・ファイルの文字コード
以下のコード例は、Perl のバージョン 5.8.x 以降で、プログラムを UTF-8 で書いています。
use strict;
use warnings;
use Encode;
my $data1 = decode 'utf8', 'アイウエオカキクケコ';
my $data2 = decode 'utf8', 'カキクケコサシスセソ';
$data2 =~ s/\Q$_// foreach split //, $data1;
printf "%.1f%%\n", (length($data1) - length($data2)) * 100 / length($data1);
この回答への補足
ありがとうございます。
perlのバージョンは 5.8.8
プログラムの文字コードは EUC-JP
ファイルの文字コードも EUC-JP
です。
ご返答いただいたプログラムを試してみます。
No.2
- 回答日時:
セオリーとしてはハッシュで数えるんだろうなぁ. 例えば
my %count1 = ();
my @distinct_chars = grep ! $count1{$_}++, split // $line1;
とか.
この回答への補足
恐れ入ります。初心者の為、苦戦しています。
現在やろうとしていることは、
データが2つあり、その比較を行う作業です。
エクセルでvlookupであいまい検索をしても、
一致しない箇所がデータによってマチマチなので、
perlでデータどうしの一致率で比較ができないかと思い、悪戦苦闘しています。
data1.csv と、data2.csvの、
1列目どうしを比較して、一致率の高いデータを抜き出したいのです。
data1とdata2のレコードの並び順は一致しません。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで2つの表を比較して、文字列が同じだが、その行のある値が違うものを抽出したい 1 2022/10/06 21:48
- C言語・C++・C# いまc言語の標準ライブラリ文字列を勉強しているのですがいまいちわかりません。 strcmpとmemc 5 2023/07/04 15:34
- その他(プログラミング・Web制作) awkの文字列比較はPOSIXロケールまたはCロケールにおいてバイナリ値の比較に使えるか gawkな 1 2023/04/22 09:21
- Visual Basic(VBA) ExcelVBAでDo Until loopのネスト、IF文を使って一致する物と一致しない物としたい 11 2022/12/24 17:46
- Excel(エクセル) エクセルの日付から年末尾2桁と月を1月をA~Lに変換したい 3 2022/08/08 10:32
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- 国産車 スバルサンバー ディアスワゴンのバッテリー購入について 現在、取り付けてあるバッテリーが40B19L 5 2023/08/15 11:25
- Excel(エクセル) 【VBA】元のシート内の文字列を別シートと比較し、一致したら元のシートの別のセルへ転記する方法。 3 2023/03/23 17:30
- Visual Basic(VBA) 違う文字のみ色を塗る方法がわかりません。。 G列とH列のに文字が入っています。 例えばG5とH5の文 3 2022/06/03 17:13
- その他(エンターテインメント・スポーツ) ジャイアント馬場とアントニオ猪木はよく比較されますが、年齢差があるので、全盛期の時期はずれているかと 2 2022/11/15 20:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlを使用しての特定行抽出に...
-
メールヘッダのMIMEエンコード...
-
パイソンエラーについて
-
Perl(Windows)の文法について
-
Perlで Right関数に近い処理を...
-
GDBでデバッグするとき文字列の...
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
プログラミングでは、半角括弧...
-
「何とかで始まり、何とかで終...
-
エクセルにMicrosoft Barcode C...
-
英数字のみ全角から半角に変換
-
EXCELからCSVにすると余計なカ...
-
IEからEdgeへの移行に伴うIMEの...
-
WORDで改ページすると時々グレ...
-
Excel VBAでPDFファイルをMicro...
-
EXCELの文字が指数になる
-
csvデータのダブルクォーテーシ...
-
Word2007の全角文字、全角スペ...
-
word差し込み印刷 半角カタカ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パイソンエラーについて
-
Malformed UTF-8 character
-
Perlで Right関数に近い処理を...
-
splitの逆の処理
-
GDBでデバッグするとき文字列の...
-
数字を文字列に変換し短縮化する
-
文字列と数字を含むセルから数...
-
日本語文字列の指定長(byte)切出し
-
メールヘッダのMIMEエンコード...
-
Perl(Windows)の文法について
-
プログラミング HSPの変数につ...
-
VBA like演算子について
-
Perl/Tk使用時のUTF-8コード文...
-
perlを使用しての特定行抽出に...
-
perlでのURL判定
-
perlで文字列を短く(圧縮)し...
-
cryptの使用方法
-
外部ファイルに「漢字(かんじ...
-
リストデータの検索でのエラー...
-
文字列操作:最後の4文字を取...
おすすめ情報