私はこの質問が以前に尋ねられたことを知っています。以前の回答をすべて確認しましたが、それでも問題を解決できませんでした。明らかに重複した質問をご容赦ください。
中国語のテキスト ファイルを処理する perl プログラムを作成しています。中国語のテキストを認識したいが、英語や他の言語や URL などの他のすべての行を除外したい。use utf8
" " と " "を使用します$line =~ /(\p{Han}+)/
が、何もしません。use utf8
" " と " "を使用$line =~ /信息/
しても、何も起こりません。" " を使用しない場合、" " は機能しますがuse utf8
、" $line =~ /信息/
" は機能しません$line =~ /(\p{Han}+)/
。file -bi input.txt でテキスト ファイルのエンコーディングをチェックすると、「text/plain; charset=utf-8
"」と表示されます。コードは次のとおりです。
$|=1;
use strict;
use utf8;
my $in = $ARGV[0];
sub main {
open(IN, "$in") or die "can't open $in\n";
while (my $line=<IN>) {
chomp($line);
if ($line =~ /(\p{Han}+)/ ) {
print "chinese: $line\n";
}
if ($line =~ /信息/) {
print "$line\n";
}
} # end while
close(IN);
}
事前に助けとアドバイスをありがとう!