Re[5]: pcre и win1251
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 20.03.08 08:27
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Здравствуйте, eao197, Вы писали:


E>>С тем же успехом можно использовать и PCRE. В режиме Utf-8 сравнение без учета регистра выполняется на ура. Я так PCRE в одном из проектов использую -- с помощью libiconv преобразовываю текст из разных кодировок в utf8, а затем пропускаю через PRCE.


RO>У UTF-8 есть проблемы с регулярными выражениями. Если особая поддержка UTF-8 отсутствует, то выражения вроде «пр[ио]бежала?» будут работать очень странно, потому что парсер воспримет данные буквально — как "пр[\xD0\xB8\xD0\xBE]бежал\xD0\xB0?" — и будет действовать побайтно. Так что с этим следует быть осторожным.


У PCRE есть специальная опция: определение SUPPORT_UTF8 при компиляции PCRE включает нормальную поддержку Utf8. Приведенный вами пример у меня работает нормально.

RO>Тот же boost::make_u32regex(char const *) выполняет перекодирование из UTF-8, а другие могут этого и не делать.


А make_u32regex сам это делает, или нужно тащить за собой еще и ICU framework?

E>>Кстати, начиная, по-моему, с версии 7.0 в состав PCRE входит хороший С++ wrapper для PCRE, написанный в Google (см. заголовочный файл pcrecpp.h). С его помощью работать с PCRE очень просто и удобно.


RO>Я потому советую Boost.Regex, что они простые и что они будут включены в C++09.


Если уж человек взял PCRE, то ему может быть проще на нем же и остаться.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.