ヘッダー
C# サンプル集
 

ひらがな・カタカナを抜き出す

2021/11/7

→ Visual Basic のサンプルに切り替える

 

文字列から ひらがな だけ抜き出す

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}");
}

Debug.WriteLineが表示される場所

ひらがなの定義

これを実行すると次の通りに出力されます。

ヒット:は 開始位置: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}");
}

Debug.WriteLineが表示される場所

全角カタカナの定義 半角カタカナの定義

これを実行すると次の通りに出力されます。

ヒット:ノオトブック 開始位置: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}");
}

Debug.WriteLineが表示される場所

全角カタカナの定義

これを実行すると次の通りに出力されます。

ヒット:ノオトブック 開始位置: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}");
}

Debug.WriteLineが表示される場所

半角カタカナの定義

これを実行すると次の通りに出力されます。

ヒット:アイウエオ 開始位置: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の半角文字の一覧はこちらで確認できます。