Unicode正则表达式
unicode regular expressions c++
我想使用正则表达式匹配单词" fcv "或任何其他月份。
正则表达式:
^ (JANVIER | FEVRIER火星| |艾薇儿| MAI | JUIN | JUILLET来向| | SEPTEMBRE | OCTOBRE | | 11月DECEMBRE | 5月1月2月3月4月| | | | |君| | | 7月8月9月| | | 10月11月12月| | [jJ] anvier | (Ff)埃夫里市| (mM) ars | (aA)沃瑞尔| (mM) ai | [jJ]印尼| [jJ] uillet | (aA) o(欧盟)来向t | | [sS] eptembre | (oO) ctobre | (nN) ovembre | (dD) [ee] cembre) $
问题是我无法匹配包含unicode字母的单词: é
的Unicode值是u00E9
。我可以在正则表达式中集成这个值吗?以及如何在正则表达式中使用unicode值。
void returnValue(string pattern)
{
bool x = false;
const boost::regex e("février");
x = boost::regex_search(pattern.c_str(),e);
if(x){ cout <<"found"<<endl; }
}
您可以使用boost::regex匹配unicode。有两种方法。
如果您的平台的wchar_t可以保存Unicode字符,并且您的平台的C/c++运行时正确处理宽字符常量,则依赖wchar_t。(这有一些陷阱,不建议,阅读我提供的链接)
使用支持Unicode的正则表达式类型(boost::u32regex)。Boost必须配置为通过Unicode和ICU支持构建启用此功能
相关文章:
- 使用正则表达式regex_search在字符串中查找字符串
- 在 C++ 中使用正则表达式错误时出现问题 括号表达式中的范围无效
- C++正则表达式无限循环
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- 定义有趣的宏和正则表达式在Z3 C++绑定
- 带有多个字符分隔符的正则表达式
- C++ 使用增强正则表达式库时断言崩溃
- 有人可以帮助我处理正则表达式吗?
- 使用正则表达式获取大括号块的列表
- 正则表达式以匹配数字的重复模式,后跟任何类型的分隔符?
- 组合正则表达式部分使用 | 不起作用的 C++
- 为什么C++正则表达式这么慢?
- 如何使HTML5电子邮件验证正则表达式在C++中工作?
- 在C++中实现正则表达式
- C++正则表达式替换整个单词
- 用C++编写正则表达式的正确方法是什么?
- 如何从Stroustrup的C++书中解释这个正则表达式?
- 正则表达式匹配 Unicode 'Punctuation'类别 c++
- 提振.支持icu/unicode的正则表达式
- Unicode正则表达式