chenxhyt 2022-11-16 13:54 采纳率: 0%
浏览 11

在vs2017中使用正则判断是否为中文,使用c++。

问题遇到的现象和发生背景

在vs2017中使用正则判断是否为中文,使用c++。

用代码块功能插入代码,请勿粘贴截图
string strName =“你好,世界”;
std::regex reg("[\u4E00-\u9FA5]+$");
if (regex_match(strName, reg))
    {
    cout  << "  合法" << endl;
    }
else{
cout<<"不合法"<<endl;
}

运行结果及报错内容

输出结果:不合法

我的解答思路和尝试过的方法

1.判断编码格式,发现vs2017默认是gbk,尝试过在高级选项设置中选择utf-8,没有用。
2.尝试在gbk格式下能否判断字符是中文,效果不好,不精确。
解决方法:
只需要将字符串变为utf-8的格式就好了,但注意要将reg也要变为u8格式!

string strName =u8“你好,世界”;
std::regex reg(u8"[\u4E00-\u9FA5]+$");
if (regex_match(strName, reg))
    {
    cout  << "  合法" << endl;
    }
else{
cout<<"不合法"<<endl;
}

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-11-16 17:00
    关注
    评论

报告相同问题?

问题事件

  • 创建了问题 11月16日

悬赏问题

  • ¥15 运动会成绩管理系统的设计与实现
  • ¥15 matlab支持向量机使用错误
  • ¥99 利用C/C++语言,使用TCP/IP协议,编一个简易聊天程序
  • ¥15 如何使用python 实现对串口/dev/ttyUSB0进行上锁,使得该串口只能在一个python脚本中使用,其他脚本不能操作这个串口
  • ¥15 晶体塑性有限元——Damask求解
  • ¥30 设计一个图形用户界面来控制你机械臂的运动
  • ¥30 3d打印机无法识别到SD卡,如何解决?(相关搜索:格式化)
  • ¥15 前端返回pdf时不显示内容
  • ¥50 如何在不能联网影子模式下的电脑解决usb锁
  • ¥20 服务器redhat5.8网络问题