Механизм регулярных выражений, который поддерживает UTF-8? - PullRequest
1 голос
/ 24 апреля 2009

Мне нужен механизм регулярных выражений, который поддерживает необработанный UTF-8 - то есть строка UTF-8 хранится в char * как два символа (или один, или меньше) - например, Ab - это массив {0x41,0x62 }. Кто-нибудь знает о движке регулярных выражений, который может получить этот формат? Я могу сначала преобразовать в wchar_t, если это необходимо.

Ответы [ 3 ]

2 голосов
/ 24 апреля 2009

Эта страница говорит о том, что это возможно с Boost.Regex при условии, что вы настраиваете и используете Библиотека ICU .

0 голосов
/ 24 апреля 2009

Работа с непостоянной длиной символов в UTF-8 очень усложняет создание алгоритмов (например, регулярных выражений).

Лучше преобразовать строку utf-8 в строку типа Unicode с ICU , а затем использовать вариант wstring boost :: regex

0 голосов
/ 24 апреля 2009

Текущая реализация PCRE (версия 7.x) соответствует примерно в основном с Perl 5.10, включая поддержку кодировки UTF-8 струны и Свойства общей категории Unicode. Тем не менее, UTF-8 и Unicode служба поддержки должен быть явно включен; это не по умолчанию. Юникод таблицы соответствуют версии Unicode 5.1.

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