参考文章: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;
}