C# サンプル集 |
Visual Basic 中学校 > C# サンプル集 > C# サンプル集目次 >
ひらがな・カタカナを抜き出す
2021/11/7
文字列から ひらがな だけ抜き出す
string value = "僕はノオトブックと参考書とを同じ順序にシェルフに立てた。アイウエオ";
var results = System.Text.RegularExpressions.Regex.Matches(value, @"\p{IsHiragana}+");
foreach (System.Text.RegularExpressions.Match result in results)
{
System.Diagnostics.Debug.WriteLine($"ヒット:{result.Value} 開始位置:{result.Index}");
}
→ ひらがなの定義
これを実行すると次の通りに出力されます。
ヒット:は 開始位置:1
ヒット:と 開始位置:8
ヒット:とを 開始位置:12
ヒット:じ
開始位置:15
ヒット:に 開始位置:18
ヒット:に 開始位置:23
ヒット:てた 開始位置:25
文字列から カタカナ だけ抜き出す
この例では全角カタカナと半角カタカナの両方を抜き出します。
string value = "僕はノオトブックと参考書とを同じ順序にシェルフに立てた。アイウエオ";
var results = System.Text.RegularExpressions.Regex.Matches(value, @"(\p{IsKatakana}|[\uFF61-\uFF9F])+");
foreach (System.Text.RegularExpressions.Match result in results)
{
System.Diagnostics.Debug.WriteLine($"ヒット:{result.Value} 開始位置:{result.Index}");
}
これを実行すると次の通りに出力されます。
ヒット:ノオトブック 開始位置:2
ヒット:シェルフ 開始位置:19
ヒット:アイウエオ
開始位置:28
文字列から 全角カタカナ だけ抜き出す
string value = "僕はノオトブックと参考書とを同じ順序にシェルフに立てた。アイウエオ";
var results = System.Text.RegularExpressions.Regex.Matches(value, @"\p{IsKatakana}+");
foreach (System.Text.RegularExpressions.Match result in results)
{
System.Diagnostics.Debug.WriteLine($"ヒット:{result.Value} 開始位置:{result.Index}");
}
これを実行すると次の通りに出力されます。
ヒット:ノオトブック 開始位置:2
ヒット:シェルフ 開始位置:19
文字列から 半角カタカナ だけ抜き出す
string value = "僕はノオトブックと参考書とを同じ順序にシェルフに立てた。アイウエオ";
var results = System.Text.RegularExpressions.Regex.Matches(value, @"[\uFF61-\uFF9F]+");
foreach (System.Text.RegularExpressions.Match result in results)
{
System.Diagnostics.Debug.WriteLine($"ヒット:{result.Value} 開始位置:{result.Index}");
}
これを実行すると次の通りに出力されます。
ヒット:アイウエオ 開始位置:28
参考:ひらがな・カタカナ の定義
この記事で、ひらがな、全角カタカナ、半角カタカナ とは次の意味です。2021年現在では通常の使い方だと思います。
ひらがな
ひらがなとは、Unicodeの U+3040 ~ U+309F の範囲の文字を指します。これはUnicodeで定義されているひらがなの範囲です。この中には濁点・半濁点および「ヽ」、「ヾ」、「ゟ」(より)も含まれています。含まれるすべての文字はこちらで確認できます。
全角カタカナ
全角カタカナとは、UnicodeのU+30A0 ~ U+30FF を指します。これはUnicodeで定義されるカタカナの範囲です。通常カタカナと認知されていない「゠」(数学の等号 = ではありません)、「・」、「ー」、「ヽ」、「ヾ」、「ヿ」(こと)も含んでいます。含まれるすべての文字はこちらで確認できます。
半角カタカナ
この記事では半角カタカナとは、UnicodeのU+FF61 ~ U+FF9F を指します。
Unicodeでは、U+FF61 ~ U+FF64 を Halfwidth CJK puctuation として半角の句読点・鍵かっこ「。」、「「」、「」」、「、」の4文字を定義しています。
それに続く U+FF65 ~ U+FF9F が Halfwidth Katakana variants (つまり、半角カタカナ)となっています。この記事ではこの両方をカタカナとして扱っています。(多くのプログラムではこの方が都合が良いと思ったからです。)。この範囲には「・」、「ー」、「゙」、「゚」という記号も含まれています。
これらの文字を含むUnicodeの半角文字の一覧はこちらで確認できます。