// integers 1 to 9999
QRegExp rx("[1-9]\\d{0,3}");
// the validator treats the regexp as "^[1-9]\\d{0,3}$"
QRegExpValidator v(rx, 0);
QString s;
int pos = 0;
s = "0"; v.validate(s, pos); // returns Invalid
s = "12345"; v.validate(s, pos); // returns Invalid
s = "1"; v.validate(s, pos); // returns Acceptable
rx.setPattern("\\S+"); // one or more non-whitespace characters
v.setRegExp(rx);
s = "myfile.txt"; v.validate(s, pos); // Returns Acceptable
s = "my file.txt"; v.validate(s, pos); // Returns Invalid
// A, B or C followed by exactly five digits followed by W, X, Y or Z
rx.setPattern("[A-C]\\d{5}[W-Z]");
v.setRegExp(rx);
s = "a12345Z"; v.validate(s, pos); // Returns Invalid
s = "A12345Z"; v.validate(s, pos); // Returns Acceptable
s = "B12"; v.validate(s, pos); // Returns Intermediate
// match most 'readme' files
rx.setPattern("read\\S?me(\.(txt|asc|1st))?");
rx.setCaseSensitive(false);
v.setRegExp(rx);
s = "readme"; v.validate(s, pos); // Returns Acceptable
s = "README.1ST"; v.validate(s, pos); // Returns Acceptable
s = "read me.txt"; v.validate(s, pos); // Returns Invalid
s = "readm"; v.validate(s, pos); // Returns Intermediate
QRegExp rxlen("(\\d+)(?:\\s*)(cm|inch)");
int pos = rxlen.indexIn("Length: 189cm");
if (pos > -1) {
QString value = rxlen.cap(1); // "189"
QString unit = rxlen.cap(2); // "cm"
// ...
}
//匹配所有符合条件字符串
QString str = “123123124143123123”;
QRegularExpression regE("^[0-9]*$");
QRegularExpressionMatchIterator it = regE.globalMatch(str);
while (it.hasNext()) {
QRegularExpressionMatch match = it.next();
processReceivedTCPFrames(match.captured().toLocal8Bit());
}
//匹配所有符合条件字符串
QRegExp reg("^[0-9]*$");
int pos = 0;
while ((pos = reg.indexIn(str , pos)) != -1) {
qDebug()<<reg.cap(0);
pos += reg.matchedLength();
}
//经纬高
//+-180 6位小数
QRegExp rxLon("^-?(180|1?[0-7]?\\d(\\.\\d{1,6})|[1-9]?\\d(\\.\\d{1,6})?)$");
QRegExpValidator *validatorLon = new QRegExpValidator(rxLon, this);
ui.lineEdit_10->setValidator(validatorLon);
//+-90 6位小数
QRegExp rxLat("^-?(90|[1-6]?\\d(\\.\\d{1,6})?)$");
QRegExpValidator *validatorLat = new QRegExpValidator(rxLat, this);
ui.lineEdit_11->setValidator(validatorLat);
//+-1000000 2位小数
QRegExp rxHeight("^-?(1000000|1?\\d{1,6}(\\.\\d{1,2})?)$");
QRegExpValidator *validatorHeight = new QRegExpValidator(rxHeight, this);
ui.lineEdit_12->setValidator(validatorHeight);
Qt使用正则实例
于 2020-05-12 15:06:55 首次发布