Есть ли где-нибудь список только языковых областей символов для UTF-8? - PullRequest
3 голосов
/ 17 мая 2010

Я пытаюсь проанализировать некоторые документы в кодировке UTF-8 таким образом, чтобы распознавать символы разных языков. Для моего подхода к работе мне нужно игнорировать неязыковые символы, такие как управляющие символы, математические символы и т. Д. Простая попытка разбить базовый латинский раздел стандарта UTF привел к появлению нескольких областей, причем такие символы, как символ деления, находятся прямо в середина диапазона допустимых латинских символов.

Есть ли где-нибудь список, идентифицирующий эти регионы? Или, еще лучше, Regex, который определяет регионы или что-то в C #, которое может идентифицировать различные символы?

Ответы [ 3 ]

5 голосов
/ 17 мая 2010

Посмотрите на Unicode категории символов . Вы можете сопоставить их в регулярных выражениях C # с синтаксисом класса символов \p{catname}. Таким образом, чтобы соответствовать строчной букве, вы должны использовать \p{Ll}. Вы можете объединить это. [\p{Ll}\p{Lu}] соответствует символам в классе Ll или Lu.

1 голос
/ 17 мая 2010

Вас может заинтересовать универсальная альфа , как определено тем, что допустимо в идентификаторе C.

1 голос
/ 17 мая 2010

Вы можете использовать \p{XXX} для соответствия категории Юникод. Например, \p{Cc} соответствует всем управляющим символам.

Полагаю, вы можете использовать \w для сопоставления всех букв в (L *). В режиме Unicode он равен [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}].

См. http://www.fileformat.info/info/unicode/category/index.htm список категорий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...