Qt正则表达式同时匹配多个关键词
版本Qt5.14.2点击折叠或展开代码QString keywords sun-jiang; // 假设输入是 - 分隔QStringList list keywords.split(-, Qt::SkipEmptyParts);// 动态构建 lookahead 正则QString lookahead;for (const QString kw : list) {QString escaped QRegularExpression::escape(kw.trimmed());lookahead (?.* escaped );}QString pattern ^ lookahead .*$; // 加 .*$ 确保整个字符串被“实际匹配”避免某些引擎返回空匹配QRegularExpression re(pattern, QRegularExpression::CaseInsensitiveOption);// QSortFilterProxyModel *proxyModel new QSortFilterProxyModel(this);proxyModel-setFilterRegularExpression(re);代码说明将字符串用分隔符分割成多个关键字列表构建正则表达式使用正向先行断言和分组构建正则表达式构建Qt正则表达式对象QRegularExpression并在QSortFilterProxyModel中使用。参考文献【正则表达式】同时匹配多个字符正则表达式 - 断言