【C#】文字列に日本語が含まれているかを簡単に判別する

Unityで文字列の中に日本語が含まれているかを調べたい状況になり、いろいろ調べたので記事にします。

実際に使用したのはUnityですが、C#であれば問題なく使えると思います。

ソースコード

文字列の中に1文字以上の ひらがなorカタカナor漢字 が含まれるかを判別。


using System.Text.RegularExpressions;

private bool IsJapanese(string text)
{
    var isJapanese = Regex.IsMatch(text, @"[\p{IsHiragana}\p{IsKatakana}\p{IsCJKUnifiedIdeographs}]+");
    return isJapanese;
}

Regex.IsMatch() を使って正規表現で判別しています。

\p{IsHiragana}、\p{IsKatakana}、\p{IsCJKUnifiedIdeographs}
はそれぞれひらがな、カタカナ、漢字の判別をしており、
そのどれかが1文字以上含まれるかを判別しています。

コメント