「すべての漢字を取り出す正規表現」をPHPで試す、を正しく行う
2006年12月12日-
スポンサード リンク
Information Flow and Stock: [PHP] mb_ereg()じゃない、preg_match_all()に/uをつけるんだ!
なので、できる限りpreg系の関数を使いたいわけですが、検索対象や検索パターンに日本語が含まれているときは、日本語処理に対応したereg系の関数であるmb_ereg系の関数が使われることが多いようです。
以前、「すべての漢字を取り出す正規表現」をPHPで試す、を正しく行う方法。
以前はmb_eregによる方法を示しましたが、次の方法の方がうまく動作するようです。
preg_match_all('/[一-龠]+|[ぁ-ん]+|[ァ-ヴー]+|[a-zA-Z0-9]+|[a-zA-Z0-9]+/u', $strToSplit, $aMatches);
print_r($aMatches); // マッチ結果が全出力
確かに、なぜか取れない漢字があったので、( ) で括って独自に追加したりしていましたが、この方が簡単でいいですね。
/u を使うことで UTF-8 として認識するようです。
ちなみに、以前紹介したのは次のようにループが入っちゃってました。
while(1){
$bytes = mb_ereg("[一-龠]+|[ぁ-ん]+|[ァ-ヴー]+|[a-zA-Z0-9]+|[a-zA-Z0-9]+", $str, $match);
if ($bytes == FALSE) {
break;
} else {
$match = $match[0];
array_push($token, $match);
}
$pos = strpos($str, $match);
$str = substr($str, $pos+$bytes);
}
preg_match_all関数ならマッチ結果を全部連想配列に入れることが可能なので、全ての漢字を取り出したい場合はこっちを使ったほうがよいですね。
スポンサード リンク
最新のブログ記事(新着順)
- シンプルデザインがクールなJavaScript-WYSIWYGエディタ「TinyEditor」
- Microsoftの地図サイトAPIをjQueryから簡単に使えるプラグイン「Virtual Earth Toolkit」
- Flickrみたいに写真内に枠を作ってコメントできるようにするjQueryプラグイン
- 2010年2月8日 管理人のブックマーク
- クールにアニメーションする水平ドロップダウンメニュー実装jQueryライブラリ
- JavaScriptを使って実現した面白サイト集
- 今だかつてない使いやすさでUIもクールなマルチアップローダー実装ライブラリ「Plupload」
- オプティマイジングWebサイト - 書籍紹介
- Android機でWordPressの記事が書けるアプリケーションが公開
- 2010年2月5日 管理人のブックマーク


















間違いの指摘をしていただける方はメールでお願いします(クリック)


