Unicodeの学習は初めてで、ASCIIの背景に基づいてどれだけ学習する必要があるかわかりませんが、読んでいます 識別子のルールに関するC#仕様 =内部で許可される文字を決定する Azureテーブル (これはC#仕様に直接基づいています)。
これらのカテゴリに分類されるUnicode文字のリストはどこにありますか。
letter-character
:クラスLu、Ll、Lt、Lm、Lo、またはNlのUnicode文字combining-character
:クラスMnまたはMcのUnicode文字decimal-digit-character
:クラスNdのUnicode文字connecting-character
:クラスPcのUnicode文字formatting-character
:クラスCfのUnicode文字この情報は、ここで公開されている公式のUnicodeデータファイルUnicodeData.txt
から自動化された方法で取得できます。
これは、各行にセミコロンで区切られた値を持つファイルです。 3番目の列は、各文字の文字クラスを示しています。
これの利点は、各キャラクターのキャラクター名を取得できることです。そのため、キャラクター自体を見るだけでなく、それが何であるかをよりよく理解できます(たとえば、ბが何であるかを知っていますか?そうです、それは禁止です。グルジア語。:-)
)
FileFormat.infoには、カテゴリ別のUnicode文字のリストがあります。
もちろん、LINQを使用することもできます。
var charInfo = Enumerable.Range(0, 0x110000)
.Where(x => x < 0x00d800 || x > 0x00dfff)
.Select(char.ConvertFromUtf32)
.GroupBy(s => char.GetUnicodeCategory(s, 0))
.ToDictionary(g => g.Key);
foreach (var ch in charInfo[UnicodeCategory.LowercaseLetter])
{
Console.Write(ch);
}
Unicodeカテゴリとその短縮名のリストは [〜#〜] msdn [〜#〜] にあります。たとえば、「Ll」は nicodeCategory.LowercaseLetter の略です。 。
ANTLR lexer には、便利な範囲形式のUnicode文字セット(LU、LL、LT、LM、およびLO)があります。
https://www.compart.com/en/unicode/category は、カテゴリを閲覧するための非常に便利でナビゲートしやすいサイトです。検索可能で、個々のUnicode文字に関する非常に多くの情報が一覧表示されます。