QT
小于 1 分钟
QT
目录
正则
QRegExp类
Qt6只有兼容版本,不用
QRegularExpression类
参考:https://doc-snapshots.qt.io/qt6-dev/qregularexpression.html
构造
#include <QRegularExpression>
// 匹配两个数字后跟一个空格和一个单词
QRegularExpression re ( "\\d\\d \\w+" ); // 转义
QRegularExpression re ( R "(\d\d \w+)" ); // 原始字符串(和js的有点不同,引号里面还要加个括号)
// 匹配一个反斜杠
QRegularExpression re2 ( "\\\\" ); // 四个反斜杠才等于一个反斜杠
re.setPattern("another pattern"); // 重新设置规则
// 规则转字符串
//pattern () 函数返回当前为 QRegularExpression 对象设置的模式
QRegularExpression re("a third pattern");
QString pattern = re.pattern(); // pattern == "a third pattern"
模式选项
略
匹配
正常匹配
// 匹配两个数字后跟一个空格和一个单词
QRegularExpression re("\\d\\d \\w+");
QRegularExpressionMatch match = re.match("abc123 def");
bool hasMatch = match.hasMatch(); // true
匹配的子字符串
QRegularExpression re("\\d\\d \\w+");
QRegularExpressionMatch match = re.match("abc123 def");
if (match.hasMatch()) {
QString matched = match.captured(0); // matched == "23 def"
// ...
}
或
QRegularExpression re("^(\\d\\d)/(\\d\\d)/(\\d\\d\\d\\d)$");
QRegularExpressionMatch match = re.match("08/12/1985");
if (match.hasMatch()) {
QString day = match.captured(1); // day == "08"
QString month = match.captured(2); // month == "12"
QString year = match.captured(3); // year == "1985"
// ...
}