今日、Unicodeブロックというものを初めて知りました。正規表現で利用できます。
例えば、半角英数字もしくは半角記号かどうかをチェックするときには、このように書けるんです。
\p{InBasicLatin} の部分が半角英数字と半角記号に全てマッチします。
ということで、Unicodeブロック便利そうです。(・∀・)
他にも使えそうなUnicodeブロックがあるのでまとめておきます〜
にしても、こちらのサイトでも言われていますが、なぜ半角カナ専用のUnicodeブロックがないのかと小一時間(ry
注意して使っていかなくては。(´Д⊂)
例えば、半角英数字もしくは半角記号かどうかをチェックするときには、このように書けるんです。
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use Encode qw(encode_utf8);
my $str = "aあ-い0bc〜d9e";
for ($str =~ /./g) {
if (/\p{InBasicLatin}/) {
print encode_utf8("$_ is latin\n");
}
else {
print encode_utf8("$_ is not latin\n");
}
}
\p{InBasicLatin} の部分が半角英数字と半角記号に全てマッチします。
a is latin あ is not latin - is latin い is not latin 0 is latin b is latin c is latin 〜 is not latin d is latin 9 is not latin e is latin
ということで、Unicodeブロック便利そうです。(・∀・)
他にも使えそうなUnicodeブロックがあるのでまとめておきます〜
\p{InBasicLatin} # 半角英数字と半角記号
\p{InHiragana} # 平仮名
\p{InKatakana} # カタカナ
\p{InCJKUnifiedIdeographs} # 漢字
\p{InCJKSymbolsAndPunctuation} # 全角記号
\p{InHalfwidthAndFullwidthForms} # 半角カナなど(※0-9とかA-Zにもマッチするみたい・・)にしても、こちらのサイトでも言われていますが、なぜ半角カナ専用のUnicodeブロックがないのかと小一時間(ry
注意して使っていかなくては。(´Д⊂)
