考えてみるとあんまり真面目に考察してなかったので調べてみる…とまぁ、色々なパターンが。
概ね正規表現で、preg_matchまたはmb_eregを使うケースが多いようなのですが(マルチバイトって意味だとmb_eregかなぁとか思いつつ)。
正規表現パターンが概ね
mb_ereg("^[ァ-ヶー]+$", $string) mb_ereg("^[ァ-ヴー]+$", $string) preg_match("/^[ァ-ヶー]+$/u", $string) preg_match('/^(?:\xE3\x82[\xA1-\xBF]|\xE3\x83[\x80-\xB6]|\xE3\x83\xBC)+$/', $string) preg_match("/^[ァ-ヾ]+$/u", $string) preg_match("/^(\xe3\x82[\xa1-\xbf]|\xe3\x83[\x80-\xbe])+$/u", $string)
と、ばらんばらん。
^と$はとりあえず置いておくとして。
先頭が「ァ」なのは確定。
あとはどしよ?
ってんで、調査
<?php require_once('debug_util.inc'); debug_util::dump_string_put("ァ"); echo "\n"; debug_util::dump_string_put("ヾ"); debug_util::dump_string_put("ヶ"); debug_util::dump_string_put("ー"); debug_util::dump_string_put("ヴ");
結果
ァ( (e3)(82)(a1) )
ヾ( (e3)(83)(be) )
ヶ( (e3)(83)(b6) )
ー( (e3)(83)(bc) )
ヴ( (e3)(83)(b4) )
うんまぁ先頭が「ァ(\xe3\x82\xa1)」ってのはよいとして。
ヴまでかヶまでかってぇとヶまでだなぁ。多分飛んでーが入る。
一番遠いのはヾ。
で、その辺前提にUTF-8表を見ると(先に見ろよってのはなし)。
E382A1(ァ)からE383B6(ヶ)までは割と穏当。
その先って「? ? ? ? ・ ー ヽ ヾ」ってなるので(?なのは、上手く表示でけんかった)。
参考こちら。
http://orange-factory.com/sample/utf8/code3-e3.html
うんまぁ「中黒気になる」けど、「[ァ-ヾ]」は、まぁざっくりとはよいかもしれぬ。
^と$は\aと\Zにするとして、まぁ、そのあたりかねぇ、的な。
ちなみにひらがなだと、ぁ(e3 81 81)から…まぁゞ(e3 82 9e)まで、で、いいんぢゃねぇかなぁ、っと。
ざっくり。