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文字以上含まれるかを判別しています。
コメント