「すべての漢字を取り出す正規表現」をPHPで試す、を正しく行う
2006年12月12日
なので、できる限り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関数ならマッチ結果を全部連想配列に入れることが可能なので、全ての漢字を取り出したい場合はこっちを使ったほうがよいですね。
投稿者 KJ : 2006年12月12日 07:03
|
![]()
間違いの指摘をしていただける方はメールでお願いします
最新のブログ記事
- ケータイシミュレータのP1エミュレータが一旦有償になりましたが無料評価版が出たみたい
- 2008年10月10日 管理人のブックマーク
- Yahoo!のアクセス解析ツール「Yahoo! Web Analytics」
- メールやカート、矢印など絵文字風ボタンアイコン集
- 使えるPhotoshopのテクニックが満載のブログ「PSD learning」
- 2008年10月9日 管理人のブックマーク
- 10日間のPHP無料研修を開催!テンプスタッフ・テクノロジー株式会社にインタビュー
- 色々なPhotoshopブラシを入手できるサイト「BlendFu」
- 暇つぶしに良い面白オンラインFlashゲーム集
- Photoshopで行う3Dテキストエフェクト集
- 2008年10月8日 管理人のブックマーク


















