判断QString是否符合正则表达式,比如ABC_12345符合正则表达式,ABCD_1234不符合
时间: 2024-09-28 18:00:20 浏览: 53
在C++中,你可以使用Qt库中的QRegExp和QString类来匹配字符串和正则表达式。以下是一个简单的示例,展示了如何检查一个QString是否符合特定的正则表达式:
```cpp
#include <QObject>
#include <QString>
#include <QRegExp>
bool isValidFormat(const QString& str, const QString& regexPattern) {
QRegExp regExp(regexPattern);
return regExp.exactMatch(str);
}
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QString str1 = "ABC_12345";
QString str2 = "ABCD_1234";
if (isValidFormat(str1, "(^[A-Z]+_[0-9]+$)")) { // 匹配大写字母加下划线再加数字的格式
qDebug() << "String 1 is valid according to the pattern.";
} else {
qDebug() << "String 1 is not valid.";
}
if (isValidFormat(str2, "(^[A-Z]+_[0-9]+$)")) { // 同样的模式用于str2
qDebug() << "String 2 is valid.";
} else {
qDebug() << "String 2 is not valid.";
}
return app.exec();
}
```
在这个例子中,`isValidFormat()`函数接受一个QString和一个正则表达式模式作为参数。正则表达式`"[A-Z]+_[0-9]+"`匹配由一个或多个大写字母(A-Z)组成的字符串后面跟着一个下划线,然后是一个数字。
如果字符串符合正则表达式的模式,`exactMatch()`函数将返回true;否则返回false。
阅读全文