ルモーリン
ホーム 更新 Perl Sample サービス 雑談 鉄ゲタ Linux リンク 連絡先

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文字マッチしました
-----
文字の種類:漢数字
〇一二三四五六七八九
マッチしません
-----
文字の種類:ローマ数字
ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯ
マッチしません
-----