Ruby の正規表現で日本語(ひらがな/カタカナ/漢字)にマッチさせる

Ruby は鬼車という超強力な正規表現エンジンを採用しているので、正規表現で日本語のひらがな・カタカナ・漢字にマッチさせるのも簡単です。

鬼車

スポンサーリンク

日本語にマッチさせる正規表現

ひらがなの正規表現

カタカナの正規表現

漢字の正規表現

漢字の正規表現は、文字クラスで “一-龠” の範囲を指定して、さらにその範囲に入っていない “々” を追加する。

日本語にマッチさせる時の落とし穴

それで、以下の正規表現を日本語の単語用に使っていたのですが、落とし穴がひとつありました。

なんと!マッチしません!

原因は、/\p{Hiragana}|\p{Katakana}|[一-龠々]/ が長音(伸ばす文字)にマッチしないためです。なので、完全に日本語の単語にマッチさせるには長音を正規表現に追加する必要があります。以下のように変更。

今度はバッチシ、マッチした先頭文字の位置である “0” を返してくれました。

その他の注意点

句読点などを試した。

試しましたところ、句読点(、。)、コンマ、半角・全角スペースなどにもマッチしないので、日本語で文章単位でマッチさせる場合には、さらに工夫が必要です。

スポンサーリンク
私は以下の本で Ruby を覚えました。メタプログラミングRubyは入門を超える内容で難しめです。
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!