支持原始UTF-8的正则表达式引擎?

时间:2009-04-24 11:01:05

标签: c++ regex

我需要一个支持原始UTF-8的正则表达式引擎 - 意思是,UTF-8字符串作为两个字符(或者一个或更少)存储在char *中 - 例如,Ab是数组{0x41,0x62 }。 有人知道可以接收该格式的正则表达式引擎吗? 如果需要,我可以先转换为wchar_t。

3 个答案:

答案 0 :(得分:2)

This page表示可以使用Boost.Regex,条件是您配置并使用ICU library

答案 1 :(得分:0)

  

目前PCRE的实施   (版本7.x)对应近似值          与Perl 5.10配合使用,包括支持UTF-8编码   字符串和          Unicode常规类别属性。但是,UTF-8和Unicode   支持          必须明确启用;它不是默认值。 Unicode   表          对应于Unicode版本5.1。

答案 2 :(得分:0)

处理UTF-8的非常量字符长度特性使得创建算法(如正则表达式)非常困难。

最好将utf-8字符串转换为带ICU的unicode wstring,然后使用boost::regex的wstring变体