C++中DEELX匹配中文

VC6 非UNICODE环境。今天遇到这个问题,易语言 却没有问题(易语言是 ANSI 编码) ,百般折腾,无果。百度搜解决方案
遇到此贴

http://bbs.csdn.net/topics/390921030#new_post

百度只此一贴。度娘也没结果。
最终只好用 易语言编译一个 程序让后把他 逆了。跟踪看看怎么实现的。
跟进去 之后发现 其实是在函数内部进行了ANSI到 UNICODE 的转换。然后在进行 匹配。
VC 代码 部分 改为 UNICODE宽字符,一试果然。
献丑代码(测试通过):

    wchar_t *buf=L"aa呵呵哒gnoksdg";
    wchar_t su[256] ={0};
    // 表达式对象
    CRegexpT <wchar_t> re(L"[\\u4e00-\\u9fa5]+", IGNORECASE | GLOBAL | MULTILINE);

    // 查找结果
    MatchResult result = re.Match(buf);

    // 是否找到匹配
    if( result.IsMatched() )
    {
        int beginPos    = result.GetStart();
        int endPos      = result.GetEnd();
        wcsncat(su,buf+beginPos,endPos-beginPos);
        MessageBoxW(NULL,su,L"A",MB_OK);
    }

测试结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值