問:以下のスクリプトの出力を想像してみましょう(perlのバージョンは5.8以降、スクリプトの文字コードはutf-8とする)

use utf8;
print 1 if "あ" =~ /\p{IsAlpha}/;
print 2 if "あ" =~ /\p{Alphabetic}/;
print 3 if "あ" =~ /[[:alpha:]]/;

.

..

...

答: 123

.

..

ナンデヤネーン

..

...

http://d.hatena.ne.jp/moriyoshi/20090315/1237103809http://unicode.org/charts/#scripts とをにらめっこして、 恐る恐る lib/unicore/lib/gc_sc/Alpha.pl を開いてみると、そこには..

# (略)
return <<'END';
0041	005A	
0061	007A	
00AA		
(略)
3041	3096	
3099 309A
(略)

.....

知らんかった。ひらがなは(perlの正規表現の世界では)アルファベットやったんや... orz

ナンデヤネーン

ちなみに、 use utf8;を消して、スクリプトの文字コードをcp932にすると何も出力されず("あ"はアルファベットじゃない)、
utf-8にすると、"12"が出力されました("あ"はPOSIXで定義されるところのアルファベットじゃない(?))。

うーん...

トラックバック(1)

トラックバックURL: http://floralcompany.jp/mt/mt-tb.cgi/203

結論から言うと、仕様です。 Is "あ" an alphabet? - FloralCompany.log use utf8; print 1 if "あ" =~ /\p{IsAlpha}/; print 2 if "あ" =~ /\p{Alphabetic}/; print 3 if "あ" =~ /[[:alpha:]]/; ナンデヤネーン それも、PerlではなくUnicodeの。 続きを読む

AUTHOR

  • turugina (虎王 剱奈)
  • E-mail: turugina {at} floralcompany.jp
  • pixiv
  • ニジエ

2014年5月

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

アーカイブ

OpenID対応しています OpenIDについて
Powered by Movable Type 5.2.10

- 警 告 -

本サイトにはいわゆる「18禁画像」(イラスト)へのリンクが存在します。 未成年の方や、その手の画像に不快感を覚える方は、 該当記事(「えちぃの」及び「ちょっとえちぃの」カテゴリ) をご覧にならないようお願いいたします。

上記を理解した上で非表示のブログパーツを表示する
あわせて読みたいブログパーツ
ついった
drawr/pixiv/twitpic