#include <QCoreApplication>
#include<QDebug>
bool checkStatus(QString str);
bool isNumeric(const QString &str);
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString x1="vout[::,::,::,1]";
QString x2="vout[:,::,::,1]";
QString x3="vout[1:,::,::,1]";
QString x4="vout[x,::,::,1]";
QString x5="vout[2,::,::,1]";
qDebug()<<checkStatus(x1);
qDebug()<<checkStatus(x2);
qDebug()<<checkStatus(x3);
qDebug()<<checkStatus(x4);
qDebug()<<checkStatus(x5);
return a.exec();
}
bool checkStatus(QString str)
{
bool res=false;
QRegExp regex("\\[([^\\]]+)\\]"); // 匹配方括号内的内容
int pos = regex.indexIn(str);
if (pos != -1) {
QString result = regex.cap(1);
QStringList f=result.split(",");
for(int i=0;i<f.size()-1;i++){
QString val=f.at(i);
if(val=="::")
{
res=true;
continue;
}
else if(val.size()==1 && isNumeric(val))
{
res=true;
continue;
}else
{
return false;
}
}
// qDebug() << "Substring inside brackets: " << result;
}
return res;
}
bool isNumeric(const QString &str)
{
QChar num = str.at(0);
return num.isDigit();
}
#c++#