Заголовок<<boost/regex/icu.hpp>
>предоставляет класс признаков регулярного выражения, который обрабатывает символы UTF-32:
class icu_regex_traits;
Регулярный тип выражения, основанный на этом:
typedef basic_regex<UChar32,icu_regex_traits> u32regex;
Тип<u32regex
>— это тип регулярных выражений, используемый для всех регулярных выражений Unicode; внутренне он использует кодовые точки UTF-32, но может быть создан из и использован для поиска либо UTF-8, либо UTF-16, закодированных строк, а также UTF-32.
Конструкторы и назначение функций<u32regex
>требуют кодированных строк UTF-32, но существует ряд перегруженных алгоритмов, называемых<make_u32regex
>, которые позволяют создавать регулярные выражения из кодируемых строк UTF-8, UTF-16 или UTF-32:
template <class InputIterator>
u32regex make_u32regex(InputIterator i,
InputIterator j,
boost::regex_constants::syntax_option_type opt);
Эффекты: Создает объект регулярного выражения из последовательности итератора [i,j]. Кодирование символа последовательности определяется на основе размера (*i): 1 подразумевает UTF-8, 2 подразумевает UTF-16, и 4 подразумевает UTF-32.
u32regex make_u32regex(const char* p,
boost::regex_constants::syntax_option_type opt
= boost::regex_constants::perl);
Эффекты: Создает объект регулярного выражения из нулевой последовательности символов UTF-8p.
u32regex make_u32regex(const unsigned char* p,
boost::regex_constants::syntax_option_type opt
= boost::regex_constants::perl);
Эффекты: Создает объект регулярного выражения из нулевой последовательности символов UTF-8 p.
u32regex make_u32regex(const wchar_t* p,
boost::regex_constants::syntax_option_type opt
= boost::regex_constants::perl);
Эффекты: Создает объект регулярного выражения из нулевой последовательности символов p. Кодирование символа последовательности определяется на основе размера (wchar_t): 1 подразумевает UTF-8, 2 подразумевает UTF-16, и 4 подразумевает UTF-32.
u32regex make_u32regex(const UChar* p,
boost::regex_constants::syntax_option_type opt
= boost::regex_constants::perl);
Эффекты: Создает объект регулярного выражения из нулевой последовательности символов UTF-16 p.
template<class C, class T, class A>
u32regex make_u32regex(const std::basic_string<C, T, A>& s,
boost::regex_constants::syntax_option_type opt
= boost::regex_constants::perl);
Эффекты: Создает объект регулярного выражения из строки s. Кодирование символа строки определяется на основе размера (C): 1 подразумевает UTF-8, 2 подразумевает UTF-16, и 4 подразумевает UTF-32.
u32regex make_u32regex(const UnicodeString& s,
boost::regex_constants::syntax_option_type opt
= boost::regex_constants::perl);
Эффекты: Создает объект регулярного выражения из кодирующей строки UTF-16 s.