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

スポンサーリンク

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

鬼車

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

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

ひらがなの正規表現

カタカナの正規表現

漢字の正規表現

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

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

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

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

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

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

その他の注意点

句読点などを試した。

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

スポンサーリンク
私は以下の本で Ruby を覚えました。メタプログラミングRubyは入門を超える内容で難しめです。
 
スポンサーリンク

Leave Your Message!