- ベストアンサー
正規表現について
人名を漢字、平仮名、アルファベットでカンマ区切りでcsvファイルに保存したものがあるとします。 それで例えば、平仮名で一番初めが「あ」の人だけを表示させたいプログラムを書きたいのですがなかなかうまくいきません。 正規表現の使い方もいまいちわかっていなく、とりあえず全て平仮名かどうか調べるプログラムを、 http://phpspot.net/php/pg%90%B3%8BK%95%5C%8C%BB%81F%82%B7%82%D7%82%C4%82%D0%82%E7%82%AA%82%C8%82%A9%82%C7%82%A4%82%A9%92%B2%82%D7%82%E9.html のサイトからコピーして作成してみたのですが、表示されませんでした。 以下が作成したものです。 <?php $handle = fopen("csv.csv", "r"); if ($handle) { while (!feof($handle)) { $buffer = fgets($handle, 4096); list($kanji,$hiragana,$alphabet) = explode(",", $buffer); if(mb_ereg("^[あ-ん]+$",$hiragana)){ $output .= "$kanji<BR>\n"; } } } fclose($handle); echo $output; ?> もし出来ましたら、先頭が「あ」だけを表示する正規表現の表し方なども教えていただけると助かります。 お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
そのサイトにも書いてありますが、 mb_regex_encoding() mb_internal_encoding() で正規表現で使う文字コードを設定しておかないとうまく動作しないと思われます。
その他の回答 (2)
- sakusaker7
- ベストアンサー率62% (800/1280)
正規表現そのものは間違っていないと思うんで、それで表示されないのなら 文字コードがあっているかどうかが気になります。 その辺はどうですか? あと、先頭が'あ'であるかだけ判定すればいいなら ^あ でいいのでは? 'あ'の後ろは don't care でいいと思うんですが。
- nazo-nazo
- ベストアンサー率39% (17/43)
^あ.*