c++ Qt6中的端口QRegExp::exactMatch()

dxxyhpgq  于 2023-01-18  发布在  其他
关注(0)|答案(1)|浏览(191)

我正在将一个Qt5应用程序移植到Qt6。我想尽快离开Qt6的Qt5CoreCompat模块。我的问题是QRegExp类,应该用QRegularExpression类替换它。大多数补丁相对来说都很简单,但我如何在Qt6中移植QRegExp::exactMatch()。下面是应用程序的一些代码:

QRegExp version(QLatin1String("(.+)_v(\\d+)"));
if (version.exactMatch(completeBaseName/*QString*/))
{
        // some code
}

QRegularExpressionMatch类中我看不到这样做的方法。我猜解决方案可能是这样的:

QRegularExpression version(QLatin1String("(.+)_v(\\d+)"));
QRegularExpressionMatch match = version.match(completeBaseName);
if (match.hasMatch())
{
        // Find exact match or not
}

我想有和以前一样的行为。

btqmn9zl

btqmn9zl1#

文档建议使用anchoredPattern helper函数从正则表达式本身执行锚定:

QRegularExpression version(QRegularExpression::anchoredPattern(QLatin1String("(.+)_v(\\d+)")));

相关问题