Perlサンプル17 文字クラス「数字」でマッチ
投稿:2020-02-01
\d(文字クラス数字)で何がマッチするか確認します。 コンソール表示の都合でWindowsでは文字列を表示しません、マッチの有無だけ表示します。
#!/usr/bin/env perl
use v5.26;
use utf8;
use warnings;
use strict;
use feature "say";
use open IO => ":utf8";
use Encode::Argv;
use Encode::Locale;
binmode STDOUT, ":encoding(console_out)";
binmode STDERR, ":encoding(console_out)";
$| = 1;
my @test_data = (
{ kind => "ascii", string => "0123456789", },
{ kind => "アラビア数字", string => "0123456789", },
{ kind => "デーヴァナーガリー数字", string => "०१२३४५६७८९", },
{ kind => "ペルシア数字", string => "۰۱۲۳۴۵۶۷۸۹", },
{ kind => "アラビア・インド数字", string => "٠١٢٣٤٥٦٧٨٩", },
{ kind => "グジャラーティー数字", string => "૦૧૨૩૪૫૬૭૮૯", },
{ kind => "グルムキー数字", string => "੦੧੨੩੪੫੬੭੮੯", },
{ kind => "テルグ数字", string => "౦౧౨౩౪౫౬౭౮౯", },
{ kind => "カンナダ数字", string => "೦೧೨೩೪೫೬೭೮೯", },
{ kind => "マラヤーラム数字 ", string => "൦൧൨൩൪൫൬൭൮൯", },
{ kind => "タミル数字", string => "௦௧௨௩௪௫௬௭௮௯", },
{ kind => "ベンガル数字", string => "০১২৩৪৫৬৭৮৯", },
{ kind => "オリヤー数字", string => "୦୧୨୩୪୫୬୭୮୯", },
{ kind => "ビルマ数字", string => "၀၁၂၃၄၅၆၇၈၉", },
{ kind => "クメール数字", string => "០១២៣៤៥៦៧៨៩", },
{ kind => "タイ数字", string => "๐๑๒๓๔๕๖๗๘๙", },
{ kind => "ラーオ数字", string => "໐໑໒໓໔໕໖໗໘໙", },
{ kind => "新タイ・ルー数字", string => "᧐᧑᧒᧓᧔᧕᧖᧗᧘᧙", },
{ kind => "チベット数字", string => "༠༡༢༣༤༥༦༧༨༩", },
{ kind => "モンゴル数字", string => "᠐᠑᠒᠓᠔᠕᠖᠗᠘᠙", },
{ kind => "ンコ数字", string => "߀߁߂߃߄߅߆߇߈߉", },
{ kind => "オスマニャ数字", string => "𐒠𐒡𐒢𐒣𐒤𐒥𐒦𐒧𐒨𐒩", },
{ kind => "漢数字", string => "〇一二三四五六七八九", },
{ kind => "ローマ数字", string => "ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯ", },
);
say "コンソールの文字コード:" . $Encode::Locale::ENCODING_CONSOLE_OUT;
for (@test_data) {
say "文字の種類:$_->{kind}";
say $_->{string} if $Encode::Locale::ENCODING_CONSOLE_OUT =~ /utf/i;
if ($_->{string} =~ /\d+/) {
say "@{[length $&]}文字マッチしました";
} else {
say "マッチしません";
}
say "-----";
}
コンソールの文字コード:cp932 文字の種類:ascii 10文字マッチしました ----- 文字の種類:アラビア数字 10文字マッチしました ----- 文字の種類:デーヴァナーガリー数字 10文字マッチしました ----- 文字の種類:ペルシア数字 10文字マッチしました ----- 文字の種類:アラビア・インド数字 10文字マッチしました ----- 文字の種類:グジャラーティー数字 10文字マッチしました ----- 文字の種類:グルムキー数字 10文字マッチしました ----- 文字の種類:テルグ数字 10文字マッチしました ----- 文字の種類:カンナダ数字 10文字マッチしました ----- 文字の種類:マラヤーラム数字 10文字マッチしました ----- 文字の種類:タミル数字 10文字マッチしました ----- 文字の種類:ベンガル数字 10文字マッチしました ----- 文字の種類:オリヤー数字 10文字マッチしました ----- 文字の種類:ビルマ数字 10文字マッチしました ----- 文字の種類:クメール数字 10文字マッチしました ----- 文字の種類:タイ数字 10文字マッチしました ----- 文字の種類:ラーオ数字 10文字マッチしました ----- 文字の種類:新タイ・ルー数字 10文字マッチしました ----- 文字の種類:チベット数字 10文字マッチしました ----- 文字の種類:モンゴル数字 10文字マッチしました ----- 文字の種類:ンコ数字 10文字マッチしました ----- 文字の種類:オスマニャ数字 10文字マッチしました ----- 文字の種類:漢数字 マッチしません ----- 文字の種類:ローマ数字 マッチしません -----
コンソールの文字コード:UTF-8 文字の種類:ascii 0123456789 10文字マッチしました ----- 文字の種類:アラビア数字 0123456789 10文字マッチしました ----- 文字の種類:デーヴァナーガリー数字 ०१२३४५६७८९ 10文字マッチしました ----- 文字の種類:ペルシア数字 ۰۱۲۳۴۵۶۷۸۹ 10文字マッチしました ----- 文字の種類:アラビア・インド数字 ٠١٢٣٤٥٦٧٨٩ 10文字マッチしました ----- 文字の種類:グジャラーティー数字 ૦૧૨૩૪૫૬૭૮૯ 10文字マッチしました ----- 文字の種類:グルムキー数字 ੦੧੨੩੪੫੬੭੮੯ 10文字マッチしました ----- 文字の種類:テルグ数字 ౦౧౨౩౪౫౬౭౮౯ 10文字マッチしました ----- 文字の種類:カンナダ数字 ೦೧೨೩೪೫೬೭೮೯ 10文字マッチしました ----- 文字の種類:マラヤーラム数字 ൦൧൨൩൪൫൬൭൮൯ 10文字マッチしました ----- 文字の種類:タミル数字 ௦௧௨௩௪௫௬௭௮௯ 10文字マッチしました ----- 文字の種類:ベンガル数字 ০১২৩৪৫৬৭৮৯ 10文字マッチしました ----- 文字の種類:オリヤー数字 ୦୧୨୩୪୫୬୭୮୯ 10文字マッチしました ----- 文字の種類:ビルマ数字 ၀၁၂၃၄၅၆၇၈၉ 10文字マッチしました ----- 文字の種類:クメール数字 ០១២៣៤៥៦៧៨៩ 10文字マッチしました ----- 文字の種類:タイ数字 ๐๑๒๓๔๕๖๗๘๙ 10文字マッチしました ----- 文字の種類:ラーオ数字 ໐໑໒໓໔໕໖໗໘໙ 10文字マッチしました ----- 文字の種類:新タイ・ルー数字 ᧐᧑᧒᧓᧔᧕᧖᧗᧘᧙ 10文字マッチしました ----- 文字の種類:チベット数字 ༠༡༢༣༤༥༦༧༨༩ 10文字マッチしました ----- 文字の種類:モンゴル数字 ᠐᠑᠒᠓᠔᠕᠖᠗᠘᠙ 10文字マッチしました ----- 文字の種類:ンコ数字 ߀߁߂߃߄߅߆߇߈߉ 10文字マッチしました ----- 文字の種類:オスマニャ数字 𐒠𐒡𐒢𐒣𐒤𐒥𐒦𐒧𐒨𐒩 10文字マッチしました ----- 文字の種類:漢数字 〇一二三四五六七八九 マッチしません ----- 文字の種類:ローマ数字 ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯ マッチしません -----