判断当前的字符串是否存在中文

 参考文章:https://www.cnblogs.com/dragonsuc/p/4360135.html

//匹配中文字符,找到图片文件,不允许当前的路径存在中文字符

//以QT 为例

int PropertyScreenWgt::checkFilePath(QString &str)
{
    QString reg_PATTERN_STRING = QObject::tr("[\u4e00-\u9fa5]");

    int NTH = 0;
    //正则表达式
    QRegExp regExp;
    //pos代表位置
    //regcount代表匹配成功的次数
    int pos, regcount;
    pos = regcount = 0;


    regExp.setPattern(reg_PATTERN_STRING);
    //将匹配设置为最小(短)匹配  
    regExp.setMinimal(true);

    //此处的参数,记得要为const char *
    QString txtStr = QObject::tr(str.toUtf8().constData());


    //开始匹配  
    while ((pos = regExp.indexIn(txtStr, pos)) != -1)
    {
        QString str = regExp.cap(NTH);
        pos += regExp.matchedLength();
        regcount++;


        //判断有中文存在,即可停止检索,要是你想要检索出当前的字符串一共有多少个字符串的,可以继续比较
        if (regcount > 0)
        {
            break;
        }
    }

//匹配的开始位置int regStart = txtStr.indexOf(QRegExp(reg_PATTERN_STRING));
qDebug() << regStart;

    return regcount;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值