3

我正在使用 C++ 将应用程序从 .Net 框架转换为 Qt。该应用程序广泛使用正则表达式 unicode 属性ie\p{L}, \p{M}等。我刚刚发现 QRegExp 类在其他方面缺乏对此的支持(lookbehinds 等)

任何人都可以推荐一个 C++ 正则表达式库:

  • 支持 unicode 属性
  • 在其他方面是 unicode-aware(即 \w 匹配的不仅仅是 ASCII 单词字符)
  • 作为奖励,支持lookbehinds。

请不要将我指向维基百科的文章;我不相信它。那篇文章说 QRegExp 支持 unicode 属性。除非我真的做错了什么,否则不会。我正在寻找在项目中实际使用带有正则表达式库的 unicode 属性的人。

4

2 回答 2

4

http://site.icu-project.org/

ICU 是一套成熟的、广泛使用的 C/C++和 Java 库,为软件应用程序提供 Unicode 和全球化支持。

  • 在非限制性开源许可下发布
  • ...
  • 正则表达式: ICU 的正则表达式完全支持 Unicode,同时提供极具竞争力的性能。

它也与Boost兼容,请参阅他们在这方面的声明

于 2010-05-12T15:48:18.713 回答
0

应该没有什么可以阻止您使用 PCRE ( http://www.pcre.org/ ),尽管从 QStrings 来回转换为 const char *s 可能会带来痛苦/性能损失。

于 2010-05-12T15:50:59.097 回答